题目考察的知识点是:

本题主要考察双指针知识。

题目解答方法的文字分析:

判断数组长度是否小于3,小于3则直接返回数组长度。否则从1号位开始遍历数组,判断元素是否已经有3个,如果有,i指针继续向前遍历,新数组指针则等待未满3个元素的值出现,再记录下来

本题解析所用的编程语言:

java语言。

完整且正确的编程代码:

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型
     */
    public int remove_duplicates_v3 (int[] nums) {
        // write code here
        if (nums.length == 0) {
            return 0;
        }
        int count = 1;
        int num = 1;
        for (int i = 1; i < nums.length; i++) {
            if (nums[i - 1] == nums[i]) {
                num ++;
            } else {
                num = 1;
            }
            if (num > 3) {
                continue;
            }
            nums[count] = nums[i];
            count ++;
        }
        return count;
    }
}