longest-subarray-of-1s-after-deleting-one-element.py (500B)
1 def longest(nums, start): 2 running = 0 3 used = False 4 skip = 0 5 6 for idx in range(start, len(nums)): 7 if nums[idx] == 1: 8 running += 1 9 if nums[idx] == 0: 10 if used: 11 break 12 else: 13 skip = longest(nums, idx + 1) 14 used = True 15 if not used: 16 running -= 1 17 18 return max(running, skip) 19 20 class Solution: 21 def longestSubarray(self, nums: List[int]) -> int: 22 return longest(nums, 0)