#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 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, dic, ans, pre = len(arr), {0:-1}, 0, 0
for i in range(n):
pre += arr[i]
if pre not in dic:#最先出现的下标,确保是最长子数组
dic[pre] = i
if pre-k in dic:#前缀和数组存在,则找最大
ans = max(ans,i-dic[pre-k])
return ans



京公网安备 11010502036488号