Skip to content

Latest commit

 

History

History
30 lines (23 loc) · 700 Bytes

1590.-make-sum-divisible-by-p.md

File metadata and controls

30 lines (23 loc) · 700 Bytes

1590. Make Sum Divisible by P

{% tabs %} {% tab title="Python" %}

class Solution:
    def minSubarray(self, A: List[int], p: int) -> int:
        
        ## 等价于 
        ## 得到全数组的余数是多少
        need = sum(A)%p
        
        ##dp 代表 余数和idx
        last = {0: -1}
        res = n = len(A)
        cur = 0
        for idx, v in enumerate(A):
            cur = (cur + v)%p
            last[cur] = idx
            ## python mod 会变正数
            if (cur - need + p)%p in last:
                res = min(res, idx - last[(cur - need + p)%p])
                
        return -1 if res == n else res

{% endtab %} {% endtabs %}