Max Consecutive Ones
Problem
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
Solution
Easy and straightforward solution
public class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int count = 0; int res = 0;
for (int num : nums) {
if (num == 1) {
count++;
res = Math.max(res, count);
} else count = 0;
}
return res;
}
}
More Concise solution, same idea
public class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int res = 0, count = 0;
for (int num : nums) {
res = Math.max(res, count = num == 0 ? 0 : count + 1); //code show
}
return res;
}
}
Analysis
Very easy problem no need to explain more
Notice that, however, we can assign values in Math.max()
and get the return values of it to compare