
1 題目給你一個整數數組 nums 和一個整數 k ,請你統計并返回 該數組中和為 k 的子數組的個數 。子數組是數組中元素的連續非空序列。示例 1:輸入:nums = [1,1,1], k = 2輸出:2示例 2:輸入:nums = [1,2,3], k = 3輸出:22 分析這種求子數組的和,首先考慮前綴和,如果數num能參與目標和的計算,那么一定存在某些數組的和等于k-num。通過這種累加能規避重復計算。另一方面,要尋找的是連續序列,這意味著不能有元素的跳過,那么就需要記錄中間元素的和,僅僅使用字典很難,需要使用多維數組。如果定義sums[0][i]為從nums[0]到nums[i-1]的元素和,那么可以定義nums[i][j]=nums[0][j]-nums[0][i],即從nums[i]到nums[j-1]的元素和。我們的目標就是找到有多少個nums[i][j]。最簡單的方案就是雙重遍歷,但這種方法會超出內存限制。defsubarraySum(nums,k):n=len(nums)sums=[[0]*nfor_inrange(