首页 > 编程知识 正文

leecode数组解题思路,组合总和 leetcode

时间:2023-05-03 22:12:43 阅读:134049 作者:2065

给定整数数组a,返回元素之和可被k整除(连续、非空)的子数组数。

示例:

输入: a=[ 4,5,0,-2,- 3,1 ],K=5

输出: 7

说明:

有7个子数组,元素之和可以被K=5整除。

[ 4,5,0,-2,- 3,1 ],[5],[ 5,0 ],[ 5,0,-2,-3],[0],[0,-2,-3],[-2,]

提示:

1=a.length=30000-10000=a [ I ]=100002=k=10000的思路:

(presum[j] - presum[i] ) k=0-presum[j]%m=presum[I]%m,即满足同余定理a=b(modm )。

key用于在去掉前缀和馀数后存储相同馀数的个数。 计算以各要素nums[j]结束、与nums[j]之前的前缀的馀数remainder,key为remiander的value值为以nums[j]结束的能被整除的子数组的个数。

代码:

class solution 3360 defsubarraysdivbyk (self,nums: List[int], k : int (-int : pre sum=0sum _=dict ) sum _ [0]=1CNT=0foriinrange (len (nums ) ) 3360presum=nums ) )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。