Powered by:NEFU AB-IN
Link
给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
设定两个指针
#define int long long #undef int #define SZ(X) ((int)(X).size()) class Solution { public: int removeDuplicates(vector<int>& nums) { if(SZ(nums) < 2) return SZ(nums); int l = 2; for(int i = 2; i < SZ(nums); ++i){ if(nums[i] != nums[l - 1] || nums[i] != nums[l - 2]){ nums[l ++] = nums[i]; } } return l; } };