一:解题思路
使用2个游标p,q分别指向位置1,当q和q-1所指向的元素相同的时候,q++,如果不等的时候,那么nums[p++]=nums[q++];
二:完整代码示例 (C++版和Java版)
C++:
class Solution { public: int removeDuplicates(vector<int>& nums) { int p = 1, q = 1; while (q < nums.size()) { if (nums[q] == nums[q - 1]) { q++; } else { nums[p++] = nums[q++]; } } return p; } };
Java:
class Solution { public int removeDuplicates(int[] nums) { if(nums.length==0) return 0; int p = 1, q = 1; while (q < nums.length) { if (nums[q] == nums[q - 1]) { q++; } else { nums[p++] = nums[q++]; } } return p; } }