- 题目:https://leetcode.com/problems/remove-duplicates-from-sorted-array-ii/
- 思路:统计每个数字出现的次数,出现多于两次,那就push两个进去
- 坑:
- vector元素只有2个或者更少,需要特判
- 注意边界,初始值和最终(是否将所有的不重复的数字都push进去了)
- 注意要删除最后不要的元素 pop_back
- 代码
class Solution { public: int removeDuplicates(vector<int>& nums) { int res = 0; if (nums.size() <= 2) return nums.size(); int one_number = 1; for (int i = 1; i < nums.size(); i++) { if (nums[i] != nums[i-1]) { nums[res] = nums[i-1]; res++; if (one_number >= 2) { nums[res] = nums[i-1]; res++; } one_number = 1; } else { one_number++; } } nums[res] = nums[nums.size()-1]; res++; if (one_number >= 2) { nums[res] = nums[nums.size()-1]; res++; } for (int i = res; i < nums.size(); i++) nums.pop_back(); return res; } };
80. Remove Duplicates from Sorted Array II
最新推荐文章于 2024-10-30 17:45:35 发布
