3728. Stable Subarrays With Equal Boundary and Interior Sum

Share this post on:
class Solution:
    def countStableSubarrays(self, capacity: List[int]) -> int:
        n = len(capacity)
        ans = 0
        cnt = defaultdict(int)

        pfs = [0] * (n + 1)
        for i in range(n):
            pfs[i + 1] = capacity[i] + pfs[i]

        for i in range(n):
            # i - j >= 2 and pfs[i] - pfs[j + 1] == capacity[i]
            if i >= 2:
                cnt[(capacity[i-2], pfs[i-1])] += 1
            requiredP = pfs[i] - capacity[i]
            ans += cnt[(capacity[i], requiredP)]

        return ans
Share this post on:

Leave a Reply

Your email address will not be published. Required fields are marked *