LeetCode 560 和爲K的子數組

很多子數組問題都採用哈希表解決。

一遍遍歷,字典中保留的是前綴和爲鍵值的下標的個數

from typing import *
from collections import defaultdict


class Solution:
    '''
    記錄和爲某個值得下標個數
    子數組的問題很多都考慮前序和
    '''

    def subarraySum(self, nums: List[int], k: int) -> int:
        dic1 = defaultdict(int)
        dic1[0] = 1
        cnt = 0
        sum = 0
        for val in nums:
            sum += val
            if sum - k in dic1:
                cnt += dic1[sum - k]
            dic1[sum] += 1
        return cnt

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章