1 class Solution { 2 public: 3 int removeDuplicates(vector<int>& nums) { 4 if (nums.empty()) { 5 return 0; 6 } 7 int j = 0; 8 for (int i = 0; i < nums.size(); i++ ){ 9 if (nums[j]!=nums[i]){ 10 j++; 11 nums[j] = nums[i]; 12 } 13 } 14 return j+1; 15 } 16 };
其中j用于指在最后一个不同元素的位置上,i用于向后寻找,找到第一个不相等的元素,存入j所指元素的后一位上,最终返回j+1即为所求数组的长度。