十大高端网站建设,网站建设与运营总结,黄山旅游几月份去最好,今天的军事新闻添加链接描述
class Solution:def subarraySum(self, nums: List[int], k: int) - int:# 思路是从第一个元素开始遍历#xff0c;加到爆#xff0c;就把指针向前移一位result0for i in range(len(nums)):# 如果爆了#xff0c;就向后移一位if i!len(nums)-1:ji1sumnums…添加链接描述
class Solution:def subarraySum(self, nums: List[int], k: int) - int:# 思路是从第一个元素开始遍历加到爆就把指针向前移一位result0for i in range(len(nums)):# 如果爆了就向后移一位if i!len(nums)-1:ji1sumnums[i]while sumk and jlen(nums):sumsumnums[j]jj1if sumk:result1 return result 考虑错误没有如果都是正数可以但是有负数的话整个逻辑就错掉了。
class Solution:def subarraySum(self, nums: List[int], k: int) - int:count, total, sum_dict 0, 0, {0: 1} # 初始化计数器、总和和字典for num in nums:total num # 计算当前位置的总和if total - k in sum_dict:count sum_dict[total - k] # 如果前缀和 - k 在字典中出现过更新计数器sum_dict[total] sum_dict.get(total, 0) 1 # 更新当前前缀和出现次数return count思路
这个题要找到就是指针为i的地方的sum[i]-sum[j]是否等于k现在我们知道sum[i]的值就是从0下标加到i下标也知道k的值唯一不知道的就是sum[j]从头加到下标j的值是否存在所以用一个字典记录sum[j]的值出现的次数妙啊妙啊