讨论/《哈希表》 - 最大连续 1 的个数 III/
《哈希表》 - 最大连续 1 的个数 III
共 1 个回复

Python3

class Solution:
    def longestOnes(self, nums: List[int], k: int) -> int:
        """
        思路:1. k=0可以理解为求最长重复子串问题
             2. 如果当前窗口值-窗口中1的个数 <= k: 则扩大窗口(right+1)
                如果当前窗口值-窗口中1的个数 > k: 则向右滑动窗口(left+1)
        方法:哈希表 + 滑动窗口
        """
        n = len(nums)
        o_res = 0
        left = right = 0
        while right < n:
            if nums[right]== 1: o_res += 1
            if right-left+1- o_res > k:
                if nums[left]== 1: o_res -= 1 
                left += 1
            right += 1
        return right - left