Welcome to Subscribe On Youtube

Question

Formatted question description: https://leetcode.ca/all/485.html

 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

Algorithm

You can traverse the array and use a counter cnt to count the number of 1s.

The method is if the current number is 0, then cnt is reset to 0, if it is not 0, cnt is incremented by 1, and then the result res can be updated every time.

Code

  • 
    public class Max_Consecutive_Ones {
    
        public class Solution {
            public int findMaxConsecutiveOnes(int[] nums) {
                int result = 0;
                int count = 0;
                for (int num : nums) {
                    if (num == 0) {
                        count = 0;
                    } else {
                        count++;
                        result = Math.max(result, count);
                    }
                }
                return result;
            }
        }
    
    }
    
    
  • // OJ: https://leetcode.com/problems/max-consecutive-ones/
    // Time: O(N)
    // Space: O(1)
    class Solution {
    public:
        int findMaxConsecutiveOnes(vector<int>& A) {
            int ans = 0, cnt = 0;
            for (int n : A) {
                if (n) ans = max(ans, ++cnt);
                else cnt = 0;
            }
            return ans;
        }
    };
    
  • class Solution:
        def findMaxConsecutiveOnes(self, nums: List[int]) -> int:
            cnt = ans = 0
            for v in nums:
                if v == 1:
                    cnt += 1
                else:
                    ans = max(ans, cnt)
                    cnt = 0
            return max(ans, cnt)
    
    ############
    
    class Solution(object):
      def findMaxConsecutiveOnes(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        ans = 0
        count = 0
        for num in nums:
          if num == 1:
            count += 1
          else:
            count = 0
          ans = max(ans, count)
        return ans
    
    

All Problems

All Solutions