其实前缀和这个不是太懂。。 这道题的话 是把0转换成了-1
func findMaxLength(_ nums: [Int]) -> Int {
var count = 0
var sum = 0
var dict = Dictionary<Int,Int>()
dict[0] = 0
for i in 0..<nums.count {
sum += ( nums[i] == 0 ? -1 : 1 )
if let temp = dict[sum] {
count = max(count, i + 1 - temp )
}else {
dict[sum] = i + 1
}
}
return count
}
网友评论