厦门网站建设培训费用,logo智能设计一键生成器,用哪个网站做首页好,网站定制哪家正规R2-前缀和专题
目录
前缀和哈希表
双指针
ps: 第一眼过去#xff0c;这题应该能用双指针解出来#xff0c;应该也能用前缀和解题。
前缀和哈希表
适用于 nums[i] 值不固定为 0 和 1 的其他情况 class Solution:def numSubarraysWithSum(self, nums: List[int], goal: i…R2-前缀和专题
目录
前缀和哈希表
双指针
ps: 第一眼过去这题应该能用双指针解出来应该也能用前缀和解题。
前缀和哈希表
适用于 nums[i] 值不固定为 0 和 1 的其他情况 class Solution:def numSubarraysWithSum(self, nums: List[int], goal: int) - int:nlen(nums)prenum[0]list(accumulate(nums))dictdefaultdict(int,{0:1})ret0for i in range(n):rprenum[i1]lr-goalretdict[l]dict[r]1return ret 双指针 class Solution:def numSubarraysWithSum(self, nums: List[int], goal: int) - int:#就是说[l1,l2]---r,左集合的个数代表当前i下所有可能i移动就行nlen(nums)retl1l2s1s20for i in range(n):s1nums[i]s2nums[i]#左集合左右端点的移动while l1i and s1goal:s1-nums[l1]l11while l2i and s2goal:s2-nums[l2]l21retl2-l1return ret ps:
1.python功能使用 2.第一种方法中哈希表定义和使用也很ok啊