删除排序数组中重复元素
作者:
Zh1995
,
2019-11-15 17:23:00
,
所有人可见
,
阅读 735
//leetcode 26
public int removeDuplicates(int[] nums) {
if(nums.length<2) return nums.length;
int k=0;//返回数组的最后一个元素
for(int i=1;i<nums.length;i++)
if(nums[i]!=nums[k])
nums[++k]=nums[i];
return k+1;
}
//leetcode 80
public int removeDuplicates(int[] nums) {
if(nums.length<3) return nums.length;
int k=1;//用于记录数组末尾元素
for(int i=2;i<nums.length;i++)
//nums[i]是否等于nums[k]不重要
//如果nums[k]==nums[i] && nums[k-1]!=nums[i],如[1,2,2],因为可以保留两个元素,所以这样是正确的
//如果nums[k]!=nums[i] && nums[k-1]!=nums[i],如[1,2,3],不同的元素当然可以直接插入
if(nums[i]!=nums[k-1])
nums[++k]=nums[i];
return k+1;
}