prefix sum

wonderful world·2023년 1월 19일

coding

목록 보기
4/9

974. Subarray Sums Divisible by K

https://leetcode.com/problems/subarray-sums-divisible-by-k/

class Solution:
    def subarraysDivByK(self, nums: List[int], k: int) -> int:
        N=len(nums)
        sums = [0] * k
        sums[0] += 1
        cnt = 0
        currSum = 0
        for i in range(N):
            currSum = (currSum + nums[i]%k + k)%k
            cnt += sums[currSum]
            sums[currSum]+=1
        return cnt

560. Subarray Sum Equals K

https://leetcode.com/problems/subarray-sum-equals-k/
similar to #974

class Solution:
    def subarraySum(self, nums: List[int], k: int) -> int:
        pre = nums[:]
        n = len(nums)
        cnt = 0
        d = defaultdict(list)
        for i in range(n):
            if i == 0:
                prev = 0
            else:
                prev = pre[i-1]
                
            pre[i] += prev
            diff = pre[i] - k
            if diff in d:
                cnt += len(d[diff])
            if pre[i] == k:               
                cnt += 1
            
            d[pre[i]].append(i)
        return cnt

1590. Make Sum Divisible by P

https://leetcode.com/problems/make-sum-divisible-by-p/
similar to #974

2364. Count Number of Bad Pairs

https://leetcode.com/problems/count-number-of-bad-pairs/
similar to #947

profile
hello wirld

0개의 댓글