类似滑窗的思路,重点在于下标移动时的判断条件,多注意一下边界还是比较简单的。
class Solution {
public:
int numberOfAlternatingGroups(vector<int>& colors, int k) {
int l=colors.size(),ans=0,t=1;
for(int p=-k+1;p<l-1;p++)
{
if(colors[(l+p)%l]==colors[(l+p+1)%l]) t=1;
else if(++t>=k) ans++;
}
return ans;
}
};