1.題目
2.解決
package com.cl.ch2;
import java.util.Arrays;
public class RemoveDuplicates {
/**
* 時間複雜度:O(n)
* 空間複雜度:O(1)
* @param nums
* @return
*/
public int removeDuplicates(int[] nums) {
int k=0;
//[0,k]是不重複的元素
for(int i=1;i<nums.length;i++){
if(nums[i]!=nums[k]){
//不相鄰,說明有重複的元素,
// 需要將重複元素與非重複的元素互換
if(i-k!=1)
swap(nums,k+1,i);
k++;
}
}
return k+1;
}
private void swap(int[] nums, int k, int i) {
int tem = nums[k];
nums[k]=nums[i];
nums[i]=tem;
}
public static void main(String[] args) {
int[] arr = new int[]{0,0,1,1,1,2,2,3,3,4};
System.out.println(new RemoveDuplicates().removeDuplicates(arr));
System.out.println(Arrays.toString(arr));
}
}