题解 | #草原上的牛群分布# 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作为结果

