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
  • 相关阅读:
    四种读写方案IO流 (JAVA)
    如何保证ArrayList线程安全
    异常总结 (经典)
    JAVA反射机制
    移位运算符(JAVA)
    return和finally的执行顺序
    适配器模式(接口)
    2020年大厂Java面试题集锦,干货集锦,快来集合了!
    资深架构师解析springcloud分布式微服务的实现
    HTTP最全最新资料大全
  • 原文地址:https://www.cnblogs.com/bonelee/p/8552749.html
Copyright © 2011-2022 走看看