题目考察的知识点 :数组排序
题目解答方法的文字分析:判断数组长度是否小于3,小于3则直接返回数组长度。否则从1号位开始遍历数组,判断元素是否已经有3个,如果有,i指针继续向前遍历,新数组指针则等待未满3个元素的值出现,再记录下来
本题解析所用的编程语言:c++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int remove_duplicates_v3(vector<int>& nums)
{
// write code here
int n = nums.size();
int a = 0, b = 0, c = -1;
for (int i = 0; i < n; ++i)
{
if (i == 0 || nums[i] != c)
{
nums[a++] = nums[i];
c = nums[i];
b = 1;
}
else
{
if (nums[i] == c)
{
if (b >= 3)
continue;
else
{
nums[a++] = nums[i];
b++;
}
}
}
}
return a;
}
};

京公网安备 11010502036488号