Given a binary array nums, return the maximum number of consecutive1's in the array.
Example 1:
**Input:** nums = [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.
Example 2:
**Input:** nums = [1,0,1,1,0,1]
**Output:** 2
Constraints:
1 <= nums.length <= 105
nums[i] is either 0 or 1.
ac1: two pointers
classSolution {publicintfindMaxConsecutiveOnes(int[] nums) {// edge casesif (nums ==null||nums.length==0) return0;int f =1, s =0;int len =0;for (; f <nums.length; f++) {if (nums[f] == nums[f-1]) continue; // sameif (nums[f-1] ==1) len =Math.max(len, f - s); s = f; }if (nums[f-1] ==1) len =Math.max(len, f - s);return len; }}
ac2: counting
data stream model, careful about last one.
classSolution {publicintfindMaxConsecutiveOnes(int[] nums) {// edge casesif (nums ==null||nums.length==0) return0;int len =0,cnt =0;for (int i =0; i <nums.length; i++) {if (nums[i] ==1) { cnt++; } else { len =Math.max(len, cnt); cnt =0; } } len =Math.max(len, cnt);return len; }}