一、暴力破解,for循环开始位置和结束位置,时间复杂度是n2.
二、注意必须是连续的序列
class Solution(object): def partitionDisjoint(self, nums, k): """ :type A: List[int] :rtype: int """ n = len(nums) d = collections.defaultdict(int) d[0] = 1 sum = 0 res = 0 for i in range(n): sum += nums[i] if sum - k in d: # 如果前几个的和是sum-k,那么后边连续几个的和就是k res += d[sum - k] d[sum] += 1 return res