和相同的二元子數(shù)組

在由若干 0 和 1 組成的數(shù)組 A 中,有多少個和為 S 的非空子數(shù)組。

樣例:

輸入:A = [1,0,1,0,1], S = 2
輸出:4
解釋:
如下面黑體所示,有 4 個滿足題目要求的子數(shù)組:
[1,0,1]
[1,0,1]
[1,0,1,0]
[0,1,0,1]

主要考察前綴和以及哈希

class Solution:
    """
    @param A: an array
    @param S: the sum
    @return: the number of non-empty subarrays
    """
    def numSubarraysWithSum(self, A, S):
        # Write your code here.
        if not A:
            return 0
        counter=collections.Counter()
        prefix,res=0,0
        counter[0]=1 
        for i in A:
            prefix+=i 
            if prefix>=S:
                res+=counter[prefix-S]
            counter[prefix]+=1 
        return res
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容