給定乙個整數陣列和乙個整數 k,你需要找到該陣列中和為 k 的連續的子陣列的個數。
示例 1 :
輸入:nums = [1,1,1], k = 2
輸出: 2 , [1,1] 與 [1,1] 為兩種不同的情況。
說明 :
陣列的長度為 [1, 20,000]。
陣列中元素的範圍是 [-1000, 1000] ,且整數 k 的範圍是 [-1e7, 1e7]。
class solution:
def subarraysum(self, nums: list[int], k: int) -> int:
tmp, ans, dic = 0, 0, {}
dic[0] = 1
for n in nums:
tmp += n
if tmp-k in dic:
ans += dic[tmp-k]
dic[tmp] = dic.get(tmp, 0) + 1
return ans
leetcode 560 和為k的子陣列
給定乙個整數陣列和乙個整數k,你需要找到該陣列中和為k的連續的子陣列的個數。示例 1 輸入 nums 1,1,1 k 2 輸出 2 1,1 與 1,1 為兩種不同的情況。說明 陣列的長度為 1,20,000 陣列中元素的範圍是 1000,1000 且整數k的範圍是 1e7,1e7 解法1 暴力法 p...
LeetCode 560 和為K的子陣列
給定乙個整數陣列和乙個整數k,你需要找到該陣列中和為k的連續的子陣列的個數。示例 1 輸入 nums 1,1,1 k 2 輸出 2 1,1 與 1,1 為兩種不同的情況。說明 陣列的長度為 1,20,000 陣列中元素的範圍是 1000,1000 且整數k的範圍是 1e7,1e7 解題思路 從前向後...
Leetcode 560 和為K的子陣列
560.和為k的子陣列 一開始用的窮舉,超時了 class solution def subarraysum self,nums list int k int int counter 0for i in range len nums sum 0 a i while a len nums 1 sum ...