[算法导论] 1004. 最大连续1的个数 III

阅读 51

2022-04-27

双指针

也可以前向dp+反向dp来做。空间复杂度可以用ll和rr来优化。

class Solution(object):
    def longestOnes(self,nums,k):
        left, right = 0, 0 
        res = 0 
        #遍历右指针
        for right in range(len(nums)): 
            if nums[right]==0: #右指针会出现的情况
                k-=1            
             #遍历左指针 (while: 区间不符合题意)
            while k<0: 
                if nums[left]==0: #左指针会出现的情况
                    k+=1     
                left += 1 #左+=1
            res = max(res, right - left + 1) # 需要更新结果
        return res

精彩评论(0)

0 0 举报