LeetCode 80. Remove Duplicates from Sorted Array II
Follow up for "Remove Duplicates":
What if duplicates are allowed at most twice?
For example,
Given sorted array nums = [1,1,1,2,2,3]
,
Your function should return length = 5
, with the first five elements of nums being 1
, 1
, 2
, 2
and 3
. It doesn't matter what you leave beyond the new length.
水题,不要用vector.erase()方法, 直接删除操作vector内部会遍历后边元素, 所以时间花费较大, 用一个临时数组,保存一下就OK了
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
vector<int> res;
for(int i=0, s = 0; i<nums.size(); ++ i)
{
if(i == 0 || nums[i] != nums[i-1])
s = 0;
else
s ++;
if(s >= 2)
continue;
res.push_back(nums[i]);
}
nums.clear();
nums = res;
return int(nums.size());
}
};
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步