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 1122 and 3. It doesn't matter what you leave beyond the new length.

AC代碼如下:

class Solution {
public:
	int removeDuplicates(vector<int>& nums) {
		int n = nums.size();
		if (n <= 1) return n;
		int result = 0;
		int cur_num = nums[0];
		int count = 1;
		for (int i = 1; i < n; ++i){
			if (nums[i] == cur_num && count < 2){
				++count;
				++result;
				swap(nums[result], nums[i]);
			}
			else if (nums[i] != cur_num){
				cur_num = nums[i];
				++result;
				swap(nums[result], nums[i]);
				count = 1;
			}
		}
		return result + 1;
	}
};


發佈了112 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章