题解 | #草原上的牛群分布#
草原上的牛群分布
https://www.nowcoder.com/practice/25752634aa444758843eed6ff227703a
一、知识点
数组 模拟
二、解题思路
preVal标记前一个元素的值,count记录相同元素的个数。
当i==0或者当前元素与preVal不相等时,更新preVal和count的值。
时间复杂度O(n),空间复杂度O(1)。
三、C++解法
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int remove_duplicates_v3(vector<int>& nums) {
int len = nums.size();
int idx = 0, count = 0, preVal = -1;
for (int i = 0; i < len; i ++) {
if (i == 0 || nums[i] != preVal) {
nums[idx++] = nums[i];
preVal = nums[i];
count = 1;
} else {
if (nums[i] == preVal) {
if (count >= 3) {
continue;
} else {
nums[idx++] = nums[i];
count ++;
}
}
}
}
return idx;
}
};
#在找工作求抱抱#高频算法Top202-题解 文章被收录于专栏
手把手带你刷题