zoukankan      html  css  js  c++  java
  • leetcode 485. Max Consecutive Ones

    Given a binary array, find the maximum number of consecutive 1s in this array.

    Example 1:

    Input: [1,1,0,1,1,1]
    Output: 3
    Explanation: The first two digits or the last three digits are consecutive 1s.
        The maximum number of consecutive 1s is 3.
    

    Note:

    • The input array will only contain 0 and 1.
    • The length of input array is a positive integer and will not exceed 10,000

    解法1: 贪心,看到1就一直计数。

    class Solution(object):
        def findMaxConsecutiveOnes(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            ans = 0
            i = 0
            length = len(nums)
            while i<length:
                ones = 0
                while i<length and nums[i] == 1:
                    i += 1
                    ones += 1
                i += 1 # i == length or nums[i]==0
                ans = max(ones, ans)
            return ans

    OR:

    class Solution(object):
        def findMaxConsecutiveOnes(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            # greedy
            ans = 0
            i = 0
            length = len(nums)
            while i<length:
                while i<length and nums[i] == 0:
                    i += 1
                if i==length: break
                ones = 0
                while i<length and nums[i] == 1:
                    i += 1
                    ones += 1
                ans = max(ones, ans)
            return ans

    解法2:

    使用计数器,看到1就+1,看到0就reset计数器为0.

    class Solution(object):
        def findMaxConsecutiveOnes(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
            ans = 0
            ones = 0
            for n in nums:
                if n == 0:
                    ones = 0
                else:
                    ones += 1
                ans = max(ones, ans)
            return ans
  • 相关阅读:
    内置函数的补充
    python3 集合中的常用方法
    Salesforce: ISCHANGED在workflow中的使用
    Salesforce: setTreatTargetObjectAsRecipient的使用
    python实现用户登录次数太多账号"锁定"
    docker命令
    scrapy框架的安装
    分布式爬虫
    scrapy框架mongodb正规存储
    redis
  • 原文地址:https://www.cnblogs.com/bonelee/p/8552749.html
Copyright © 2011-2022 走看看