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次重复的元素,并返回新数组的长度。
代码中的主要逻辑如下:
- 获取数组的长度,并进行判断,如果长度为0,则直接返回0。
- 创建两个整数变量 count 和 fp,并初始化为1。count 用于记录新数组的长度,fp 用于计数当前数字出现的次数。
- 使用循环,从索引1开始遍历到数组末尾。
- 判断当前元素与前一个元素是否相等,如果相等则将 fp 加1,表示出现了一个重复的数字。
- 如果不相等,则将 fp 重置为1,表示进入了一个新的数字序列。
- 判断 fp 是否大于3,如果大于3,则表示当前数字出现次数超过了3次,直接跳过当前数字的处理。
- 将当前元素复制到新数组中,位置为 count 的索引,并将 count 加1。
- 循环结束后,返回 count 作为新数组的长度。