力扣面试经典150题--数组/字符串第3题--删除有序数组中的重复项
根据昨日学习到的双指针思想,分析本题依然可以采用双指针的方法解题。
分析题目,非严格有序,数组中可能存在重复数字,所以重复数字只会出现在锁定的数字的右边。类比昨日的题目,通过快慢指针,慢指针确定待排序数字,快指针往后查找下一个不重复的数字,然后将其复制到慢指针指向的下个位置,直到快指针遍历完成。至此,慢指针结束的位置+1,即为删除重复数字后的数组。
题目链接:面试经典 150 题 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台
class Solution {
public int removeDuplicates(int[] nums) {
int i=0;
int j=i+1;
while(j<nums.length){
if(nums[i]!=nums[j]){
nums[i+1]=nums[j];
i++;
}
j++;
}
return i+1;
}
}