跳到主要内容

3208.交替组II

链接:3208.交替组II
难度:Medium
标签:数组、滑动窗口
简介:请你返回 交替 组的数目。

题解 1 - python

  • 编辑时间:2024-11-27
  • 执行用时:183ms
  • 内存消耗:20.6MB
  • 编程语言:python
  • 解法介绍:记录以r为最后一个元素的滑动窗口
class Solution:
def numberOfAlternatingGroups(self, colors: List[int], k: int) -> int:
n = len(colors)
l = 0
while colors[l] != colors[(l + n - 1) % n]:
l = (l + n - 1) % n
if l == 0:
l = 1
break
res = 0
for r in range(n):
if colors[r] == colors[(r + n - 1) % n]:
l = r
else:
cnt = r - l + 1 if l <= r else r + 1 + n - l
if cnt >= k: res += 1
if (r + 1) % n == l:
l = (l + 1) % n
return res