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