跳到主要内容

3101.交替子数组计数

链接:3101.交替子数组计数
难度:Medium
标签:数组、数学
简介:返回数组 nums 中交替子数组的数量。

题解 1 - python

  • 编辑时间:2024-07-06
  • 执行用时:102ms
  • 内存消耗:20.2MB
  • 编程语言:python
  • 解法介绍:遍历时获取最长交替子数组用等差数列求和。
class Solution:
def countAlternatingSubarrays(self, nums: List[int]) -> int:
n = len(nums)
res = cur = 0
while cur < n:
start = cur
while cur + 1 < n and nums[cur] != nums[cur + 1]: cur += 1
res += (1 + (cur - start + 1)) * (cur - start + 1) // 2
cur += 1
return res