数组删除重复的元素

package com.sxf;

import java.util.ArrayList;

public class Demo {

public static void main(String[] args) {
    //给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
   //不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。
	int[] nums= {6,6,23,45,23};
	ArrayList<Integer> list=new ArrayList<>();
	int result=deletesamenums(nums,list,0);
	System.out.println(result);		
}
//方法一 借用ArrayList來實現
public  static int deletesamenums(int[] nums,ArrayList<Integer> list,int length) {
	for(int data:nums) {
		list.add(data);
	}
	for(int i=0;i<nums.length;i++) {
		for(int j=i+1;j<nums.length;j++) {
			if(i!=j&&nums[i]==nums[j]) {
				list.remove(i);
			}
		}
	}
	length=list.size();
	return length;	
}
//方法二 借用另外一個數組
public static int[] deletethesamenums(int[] nums,int[] target) {
	int len=nums.length;
	for(int i=0;i<nums.length;i++) {
		for(int j=i+1;j<nums.length;j++) {
			if(i!=j&&nums[i]==nums[j]) {
				target[i]=nums[i];					
			}else {
				target[i]=nums[i+1];
			}
		}
	}
	return target;
	
}
//方法三  内部自己删除自己重复的数据
public static int[] deleteself(int[] nums) {
	
	return null;
}

}

猜你喜欢

转载自blog.csdn.net/weixin_37565521/article/details/83384051
今日推荐