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
and1
. - The length of input array is a positive integer and will not exceed 10,000
class Solution { public int findMaxConsecutiveOnes(int[] nums) { int res = 0; int cur = 0; for(int i: nums){ if(i == 1) cur++; else{ res = Math.max(cur, res); cur = 0; } } res = Math.max(cur, res); return res; } }
注意下cur到最后不是0的情况
class Solution { public int findMaxConsecutiveOnes(int[] nums) { int res = 0, left = 0; for(int right = 0; right < nums.length; right++) { if(nums[right] != 1) { while(left <= right) left++; } else res = Math.max(res, right - left + 1); } return res; } }
用sliding window也可以