[leetcode] Max Consecutive Ones III

Harry·2024년 3월 7일
0

leetcode

목록 보기
4/7

문제

Given a binary array nums and an integer k, return the maximum number of consecutive 1's in the array if you can flip at most k 0's.

문제 예시

Input: nums = [1,1,1,0,0,0,1,1,1,1,0], k = 2
Output: 6
Explanation: [1,1,1,0,0,1,1,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.

Input: nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], k = 3
Output: 10
Explanation: [0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
Bolded numbers were flipped from 0 to 1. The longest subarray is underlined.

풀이 접근 방식

시간 및 공간 복잡도

소스코드

class Solution:
    def longestOnes(self, nums: List[int], k: int) -> int:
        
        left = 0
        for right in range(len(nums)):
            
            if nums[right] == 0:
                k -= 1
            
            if k < 0:
                if nums[left] == 0:
                    k += 1
                left += 1
                
        return right - left + 1
profile
A student developer @usyd

0개의 댓글