#
# max length of the subarray sum = k
# @param arr int整型一维数组 the array
# @param k int整型 target
# @return int整型
#
class Solution:
def maxlenEqualK(self , arr , k ):
# write code here
sum_map = {0: -1} # 初始化和为0的下标为-1
curr_sum = 0
maxlen = 0
for i in range(len(arr)):
curr_sum += arr[i]
if curr_sum - k in sum_map: # 若当前和与k的差值已经存在字典中,则更新最长子数组长度
maxlen = max(maxlen, i - sum_map[curr_sum - k])
if curr_sum not in sum_map: # 若当前和与k的差值不存在在字典中,则进行记录
sum_map[curr_sum] = i
return maxlen
无序数组中和为 S 的最长子数组【连续的】
于 2021-06-19 00:41:59 首次发布