package q1493 func longestSubarray(nums []int) int { prev, cur := 0, 0 longest := 0 has0 := false for _, a := range nums { if a == 1 { cur++ } longest = max(longest, prev+cur) if a == 0 { prev, cur = cur, 0 has0 = true } } if !has0 { longest-- } return longest } var _ = longestSubarray