陣列刪除重複的元素
阿新 • • 發佈:2018-11-02
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; }
}