题目:
题解:
class Solution:def findMaxLength(self, nums: List[int]) -> int:# 前缀和字典: key为1的数量和0的数量的差值,value为对应坐标hashmap = {0:-1}# 当前1的数量和0的数量的差值counter = ans = 0for i,num in enumerate(nums):# 每多一个1,差值+1if num:counter += 1# 每多一个0,差值-1else:counter -= 1# 如果存在1和0的数量差值相等的地方,那么说明后者到前者之前1和0的数量相等!if counter in hashmap:ans = max(ans, i - hashmap[counter])else:hashmap[counter] = ireturn ans