题解 | #草原上的牛群分布# java
草原上的牛群分布
https://www.nowcoder.com/practice/25752634aa444758843eed6ff227703a
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型 */ public int remove_duplicates_v3 (int[] nums) { // write code here int numsLen = nums.length; if (numsLen == 0) { return 0; } int count = 1; int fp = 1; for (int i = 1; i < numsLen; i++) { if (nums[i] == nums[i - 1]) { fp++; } else { fp = 1; } if (fp > 3) { continue; } nums[count] = nums[i]; count++; } return count; } }
编程语言是Java。
该题考察的知识点:
- 数组遍历和操作
- 条件判断和循环控制语句
代码的文字解释大纲:
- 首先对特殊情况进行处理,如果
numsLen
为0,直接返回0 - 定义两个变量
count
和fp
,分别初始化为1,用于记录不重复数字的个数和当前数字的出现次数 - 使用循环从索引1开始遍历数组
nums
如果当前数字与前一个数字相等,则将出现次数fp加1否则,将出现次数fp重置为1如果出现次数fp超过3次,直接跳过当前数字的处理否则,将当前数字赋值给新的位置nums[count],并将count加1 - 循环结束后,
count
即为去重后的数组长度,返回count
作为结果