Leetcode每日一题:485. 最大连续 1 的个数

目录

    • 问题描述
    • 思路分析及代码实现

问题描述

给定一个二进制数组, 计算其中最大连续 1 的个数。

示例:

输入:[1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

提示:

输入的数组只包含 0 和 1 。 输入数组的长度是正整数,且不超过 10,000。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/max-consecutive-ones
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路分析及代码实现

这道题就是一道简单的双指针问题,根据右指针的移动判断是否是1,然后每移动一次比较长度,如果右指针所指不为0,将左指针拿过来放到右指针+1的位置,同时右指针也+1

class Solution:
    def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
        n = len(nums)
        left = 0
        right = 0
        res = 0
        while right < n:
            if nums[right] == 1:
                right += 1
            elif nums[right] == 0:
                left = right + 1
                right += 1
            res = max(res, right-left)
        return res

Leetcode每日一题:485. 最大连续 1 的个数_第1张图片

你可能感兴趣的:(leetcode练习,leetcode,python,指针)