题解 | #草原上的牛群分布#
草原上的牛群分布
https://www.nowcoder.com/practice/25752634aa444758843eed6ff227703a
- 题目考察的知识点
数组,双指针
- 题目解答方法的文字分析
判断数组长度是否小于3,小于3则直接返回数组长度。否则从1号位开始遍历数组,判断元素是否已经有3个,如果有,i指针继续向前遍历,新数组指针idx则等待未满3个元素的值出现,再记录下来
- 本题解析所用的编程语言
java
- 完整且正确的编程代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型
*/
public int remove_duplicates_v3 (int[] nums) {
//数组相同元素不超过3个不用处理
if (nums.length <= 3) {
return nums.length;
}
//第一个元素位置不用处理
int count = 1;
int idx = 1;
//遍历数组
for (int i = 1; i < nums.length; i++) {
//相邻两个元素相同则判断是否已经有三个相同元素了
if(nums[i]==nums[i-1]){
//没有3个就,nums[idx++]接受nums[i]的值
if(count<3){
nums[idx++]=nums[i];
count++;
}
}else{
//若元素不同,则nums[idx++]接受nums[i]的值,count置为1
nums[idx++]=nums[i];
count=1;
}
}
return idx;
}
}