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 作为新数组的长度。
全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务