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

闪念标签:LC

题目链接:https://leetcode.cn/problems/count-alternating-subarrays/