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 n = nums.length;
        if (n == 0) {
            return 0;
        }

        int count = 1;
        int fp = 1;

        for (int i = 1; i < n; i++) {
            if (nums[i] == nums[i - 1]) {
                fp++;
            } else {
                fp = 1;
            }

            if (fp > 3) {
                continue;
            }

            nums[count] = nums[i];
            count++;
        }

        return count;
    }
}

这段代码使用的编程语言是Java。

该题考察的知识点是数组操作和循环。

这段代码实现了一个函数 removeDuplicates,接受一个整数数组 nums 作为参数,并返回一个整数结果。

该函数的目标是移除数组中超过3次重复的元素,并返回新数组的长度。

代码中的主要逻辑如下:

  1. 获取数组的长度,并进行判断,如果长度为0,则直接返回0。
  2. 创建两个整数变量 count 和 fp,并初始化为1。count 用于记录新数组的长度,fp 用于计数当前数字出现的次数。
  3. 使用循环,从索引1开始遍历到数组末尾。
  4. 判断当前元素与前一个元素是否相等,如果相等则将 fp 加1,表示出现了一个重复的数字。
  5. 如果不相等,则将 fp 重置为1,表示进入了一个新的数字序列。
  6. 判断 fp 是否大于3,如果大于3,则表示当前数字出现次数超过了3次,直接跳过当前数字的处理。
  7. 将当前元素复制到新数组中,位置为 count 的索引,并将 count 加1。
  8. 循环结束后,返回 count 作为新数组的长度。
全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务