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