JZX轻语:简
LeetCode 3101 - 交替子数组计数
发表于2024年07月06日
比较简单的动态规划题目,使用dp[i]
表示以A[i]
结尾的交替子数组的个数,那么状态转移方程为dp[i] = dp[i - 1] + 1 if A[i] != A[i - 1] else 1
。最后的结果累加dp
数组即可。
class Solution:
def countAlternatingSubarrays(self, nums: List[int]) -> int:
ans = 1
dp = 1
for i in range(1, len(nums)):
dp = dp + 1 if nums[i] != nums[i - 1] else 1
ans += dp
return ans