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