LeetCode 3208. 交替组 II

3208. 交替组 II

【分析】这个是3101. 交替子数组计数的升级版

这里环可以这样处理,最后一个元素只需要看和前面 k - 1个元素的关系即可

为什么是k - 1呢,如果多了的话,比如k个,那这段序列就包括0 - k了,这样就重复计算了

所以把前面的k - 1个元素复制到后面去

这里需要注意是子数组,中间不能断,一旦有重复元素就要重新计数,另外长度必须超过k才行

java 复制代码
class Solution {
    public int numberOfAlternatingGroups(int[] colors, int k) {
        int n = colors.length, m = n + k - 1;
        int[] cols = new int[m];
        for (int i = 0; i < n; i++) cols[i] = colors[i];
        for (int i = 0; i < k - 1; i++) cols[i + n] = colors[i];
        int pre = cols[0];
        int res = 0, t = 1;
        for (int i = 1; i < m; i++) {
            if (pre != cols[i]) {
                t += 1;
                if (t >= k) res += 1;
            } else {
                t = 1;
            }
            pre = cols[i];
        }
        return res;
    }
}
相关推荐
AI成长日志16 小时前
【笔面试算法学习专栏】图算法入门专题:岛屿数量与课程表
学习·算法·面试
中科院提名者16 小时前
RAG 与向量检索的底层算法
人工智能·算法
雅俗共赏10016 小时前
傅里叶变换、短时傅里叶变换、小波变化对比
算法
vx_biyesheji000116 小时前
计算机毕业设计:Python汽车数据分析系统 Django框架 requests爬虫 可视化 车辆 数据分析 大数据 机器学习(建议收藏)✅
爬虫·python·算法·机器学习·django·汽车·课程设计
MicroTech202516 小时前
微算法科技(NASDAQ:MLGO)后量子区块链安全架构:基于模块化格密码的抗量子签名机制
科技·算法·区块链
米粒116 小时前
力扣算法刷题 Day 24
算法·leetcode·职场和发展
郝学胜-神的一滴16 小时前
从线程栈到表达式求值:栈结构的核心应用与递归实现
开发语言·数据结构·c++·算法·面试·职场和发展·软件工程
月落归舟16 小时前
排序算法---(二)
数据结构·算法·排序算法
sonnet-102916 小时前
交换排序算法
java·c语言·开发语言·数据结构·笔记·算法·排序算法
穿条秋裤到处跑16 小时前
每日一道leetcode(2026.03.27):循环移位后的矩阵相似检查
算法·leetcode·矩阵