| 123456789101112131415161718192021222324 | 
							- func findMaxLength(nums []int) (max int) {
 
- 	n := len(nums)
 
- 	if n < 2 {
 
- 		return
 
- 	}
 
- 	sum := make([]int, n+1)
 
- 	m := make(map[int]int)
 
- 	m[0] = 0
 
- 	for i := range nums { // Range sum + two sum
 
- 		if nums[i] == 0 {
 
- 			sum[i+1] = sum[i] - 1
 
- 		} else {
 
- 			sum[i+1] = sum[i] + 1
 
- 		}
 
- 		if val, ok := m[sum[i+1]]; ok {
 
- 			if max < i+1-val {
 
- 				max = i + 1 - val
 
- 			}
 
- 		} else {
 
- 			m[sum[i+1]] = i + 1
 
- 		}
 
- 	}
 
- 	return
 
- }
 
 
  |