【LeetCode】3208.交替组II

题目描述:

题目链接:https://leetcode.cn/problems/alternating-groups-ii/description/?envType=daily-question&envId=2024-11-27

思路一:暴力解法(超时)

遍历对每一个元素与其后面K-1个元素组成的K个元素均判断是否满足条件,若满足条件res+1

cpp 复制代码
class Solution {
public:
    int numberOfAlternatingGroups(vector<int>& colors, int k) {
        int res = 0;
        int n = colors.size();
        for(int i=0; i<n; i++){
            
            int temp = colors[i];
            bool flag = true;
            for(int j=1; j<k ; j++){
                if(colors[(i+j)%n] == temp){
                    flag = false;
                    break;
                }
                temp = colors[(i+j)%n];
            }
            if(flag){
                res += 1;
            }
        }
        return res;
    }
};

思路二:

解题思路:

代码实现:

cpp 复制代码
class Solution {
public:
    int numberOfAlternatingGroups(vector<int>& colors, int k) {
        
        int n = colors.size();
        int res = 0;
        int temp = 1;

        for(int i=-k+1; i<n-1; i++){
            if(colors[(i+n)%n] != colors[(i+n+1)%n]){
                temp+=1;
            }
            else{
                temp=1;
            }

            if(temp>=k){
                res+=1;
            }
        }
        return res;
    }
};
相关推荐
野生技术架构师2 小时前
金三银四面试总结篇,汇总 Java 面试突击班后的面试小册
java·面试·职场和发展
_深海凉_2 小时前
LeetCode热题100-寻找两个正序数组的中位数
算法·leetcode·职场和发展
ja哇3 小时前
大厂面试高频八股
java·面试·职场和发展
踩坑记录3 小时前
leetcode hot100 寻找两个正序数组的中位数 hard 二分查找 双指针
leetcode
旖-旎3 小时前
深搜练习(电话号码字母组合)(3)
c++·算法·力扣·深度优先遍历
谭欣辰3 小时前
C++快速幂完整实战讲解
算法·决策树·机器学习
Mr_pyx3 小时前
【LeetHOT100】随机链表的复制——Java多解法详解
算法·深度优先
AIFarmer4 小时前
【无标题】
开发语言·c++·算法
AGV算法笔记4 小时前
CVPR 2025 最新感知算法解读:GaussianLSS 如何用 Gaussian Splatting 重构 BEV 表示?
算法·重构·自动驾驶·3d视觉·感知算法·多视角视觉
勤劳的进取家5 小时前
数据链路层基础
网络·学习·算法