官方答案
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
int n = nums.size();
if (n == 0) {
return 0;
}
int fast = 1, slow = 1;
while (fast < n) {
if (nums[fast] != nums[fast - 1]) {
nums[slow] = nums[fast];
++slow;
}
++fast;
}
return slow;
}
};
思路:雙指針
fast指針是數(shù)組遍歷指針,
slow指針是存放指針辫塌,只有遍歷的fast指針前后兩位不同時漏策,slow才會存放當(dāng)前位的數(shù)字。
1.一般來說取數(shù)組長度最好用一個變量存放臼氨,不然要多次調(diào)用size()函數(shù)掺喻。