Given a binary array nums, return the maximum length of a contiguous subarray with an equal number of 0 and 1.
Example 1:
Input: nums = [0,1]
Output: 2
Explanation: [0, 1] is the longest contiguous subarray with an equal number of 0 and 1.
Example 2:
Input: nums = [0,1,0]
Output: 2
Explanation: [0, 1] (or [1, 0]) is a longest contiguous subarray with equal number of 0 and 1.
Constraints:
1 <= nums.length <= 105
nums[i] is either 0 or 1.
解題
funcfindMaxLength(nums []int) int { ans :=0 sum :=0 prev :=make(map[int]int)for i, val :=range nums {if val ==1 { sum++ } else { sum-- }if sum ==0 { ans = i+1 } else { id, ok := prev[sum]if!ok { prev[sum] = i } else { ans =max(ans, i-id) } } }return ans}funcmax(a int, b int) int {if a > b { return a }return b }