题解 | #草原上的牛群分布#
草原上的牛群分布
https://www.nowcoder.com/practice/25752634aa444758843eed6ff227703a
题目考察的知识点:数组
题目解答方法的文字分析:
对于每种相同的数,数量最多为三个,多的移除,返回移除后数组的长度
使用left指针指向下一个要放入的位置,用right向后进行遍历,遍历到满足条件的元素就覆盖到left中。
本题解析所用的编程语言:java
public class Solution {
/**
* 计算各个位置上牛群数量的有序分布
*
* @param nums int整型一维数组,表示牛群的位置数组
* @return int整型,重新分布的数组的长度
*/
public int remove_duplicates_v3(int[] nums) {
if (nums.length == 0) {
return 0;
}
int i = 0;
int count = 1;
for (int j = 1; j < nums.length; j++) {
if (nums[j] == nums[j - 1]) {
if (count < 3) {
nums[++i] = nums[j];
count++;
}
} else {
nums[++i] = nums[j];
count = 1;
}
}
return i + 1;
}
}