题解 | #草原上的牛群分布# 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。

该题考察的知识点:

  • 数组遍历和操作
  • 条件判断和循环控制语句

代码的文字解释大纲:

  1. 首先对特殊情况进行处理,如果numsLen为0,直接返回0
  2. 定义两个变量countfp,分别初始化为1,用于记录不重复数字的个数和当前数字的出现次数
  3. 使用循环从索引1开始遍历数组nums如果当前数字与前一个数字相等,则将出现次数fp加1否则,将出现次数fp重置为1如果出现次数fp超过3次,直接跳过当前数字的处理否则,将当前数字赋值给新的位置nums[count],并将count加1
  4. 循环结束后,count即为去重后的数组长度,返回count作为结果
全部评论

相关推荐

喜欢核冬天的哈基米很想上市:会爆NullPointerException的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务