diff --git a/solution/525/main.go b/solution/525/main.go new file mode 100644 index 0000000..470259b --- /dev/null +++ b/solution/525/main.go @@ -0,0 +1,30 @@ +package main + +func findMaxLength(nums []int) int { + hashmap := make(map[int]int) + zeros, ones, maxLen := 0, 0, 0 + hashmap[0] = -1 + + for i, num := range nums { + if num == 0 { + zeros++ + } else { + ones++ + } + diff := zeros - ones + if val, ok := hashmap[diff]; ok { + maxLen = max(maxLen, i - val) + } else { + hashmap[diff] = i + } + } + + return maxLen +} + +func max(a, b int) int { + if a > b { + return a + } + return b +}