algorithms

Algorithm implementations
git clone git://git.laack.co/algorithms.git
Log | Files | Refs | README

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)