题解 | #草原上的牛群分布#

草原上的牛群分布

https://www.nowcoder.com/practice/25752634aa444758843eed6ff227703a

   int remove_duplicates_v3(vector<int>& nums) {
        // write code here
        if (nums.empty()) {
            return 0;
        }
        int j = 0; // 新数组的尾部指针
        int count = 1; // 当前元素的重复次数

        for (int i = 1; i < nums.size(); i++) {
            if (nums[i] == nums[j]) {
                // 当前元素与新数组的最后一个元素相同
                count++;
                if (count <= 3) {
                    // 重复次数不超过三次时,可以保留
                    j++;
                }
            } else {
                // 当前元素与新数组的最后一个元素不同
                count = 1; // 重置重复次数
                j++;
                nums[j] = nums[i];
            }
        }
        return j + 1; // 返回新数组的长度

    }
};

使用两个指针来追踪数组的状态。一个指针 i 用于迭代数组,另一个指针 j 用于指向新数组的尾部,确保每个元素最多重复三次。

全部评论

相关推荐

02-18 13:28
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务