LeetCode 523 連續的子數組和

利用哈希表實現

記錄每個餘數對應的第一個位置

from typing import *
class Solution:
    def checkSubarraySum(self, nums: List[int], k: int) -> bool:
        dic1={}
        dic1[0]=-1# 哨兵元素
        sum=0
        for i,val in enumerate(nums):
            sum+=val
            if k!=0:
                k1=sum%k
            else:
                k1=sum
            if k1 in dic1:
                if i-dic1[k1]>1:
                    return True
            else:
                dic1[k1]=i
        return False

 

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