题解 | #和为K的连续子数组#
和为K的连续子数组
https://www.nowcoder.com/practice/704c8388a82e42e58b7f5751ec943a11
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # max length of the subarray sum = k # @param arr int整型一维数组 the array # @param k int整型 target # @return int整型 # class Solution: def maxlenEqualK(self , arr: List[int], k: int) -> int: # write code here n = len(arr) ans = 1 pre = [arr[0] for _ in range(n)] for i in range(1, n): pre[i] = pre[i-1] + arr[i] if pre[i] == k: ans = max(ans, i+1) # if ans > 1: return ans dic = {} for i in range(n): if pre[i] not in dic.keys(): dic[pre[i]] = i residual = pre[i] - k if residual in dic.keys(): j = dic[residual] ans = max(ans, i-j) # print(pre) return ans