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