1. 程式人生 > >陣列刪除重複的元素

陣列刪除重複的元素

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;
}

}