[leetcode] 80. Remove Duplicates from Sorted Array II解題報告
タイトルリンク:https://leetcode.com/problems/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 =
Your function should return length =
考え方:前と同じように、カウンタが1つ増えただけで、要素を削除するには反復器ポインタで削除することに注意してください.
コードは次のとおりです.
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. 考え方:前と同じように、カウンタが1つ増えただけで、要素を削除するには反復器ポインタで削除することに注意してください.
コードは次のとおりです.
class Solution {
public:
int removeDuplicates(vector<int>& nums) {
if(nums.size() == 0) return 0;
int old = nums[0], cnt = 1;
vector<int>::iterator it = nums.begin()+1;
while(it != nums.end())
{
if(*it == old)
{
if(cnt <2)
{
cnt++;
it++;
}
else
nums.erase(it);
}
else
{
old = *it;
cnt = 1;
it++;
}
}
return nums.size();
}
};