题目考察的知识点 :数组排序
题目解答方法的文字分析:判断数组长度是否小于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; } };