题解 | #草原上的牛群分布#
草原上的牛群分布
https://www.nowcoder.com/practice/25752634aa444758843eed6ff227703a
题目考察的知识点
考察双指针遍历数组
题目解答方法的文字分析
使用左右指针遍历数组,使用变量count来计数从而控制数组的原地修改。
本题解析所用的编程语言
使用Java解答
完整且正确的编程代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int remove_duplicates_v3 (int[] nums) {
// write code here
if (nums.length == 0) return 0;
int i = 0;
int count = 1; // 当前位置上牛群数量
for (int j = 1; j < nums.length; j++) { //j从1开始
if (nums[j] == nums[j - 1]) { //相同的位置
if (count < 3) {
// 该位置还可以放牛
nums[++i] = nums[j];
count++;
}
} else {
// 如果当前位置与上一个位置不相同 将牛群移动到数组中,并重置计数器
nums[++i] = nums[j];
count = 1;
}
}
return i + 1;
}
}