注:此博客不再更新,所有最新文章将发表在个人独立博客limengting.site。分享技术,记录生活,欢迎大家关注
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
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int max = 0, tmp = 0;
for (int i = 0; i < nums.length; i ++) {
if (nums[i] == 1) tmp ++;
if (tmp > max) max = tmp;
if (nums[i] == 0) tmp = 0;
}
return max;
}
}
同样的思路,更好的代码风格:
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int max = 0, tmp = 0;
for (int n : nums) {
if (n == 0) tmp = 0;
if (n == 1) tmp ++;
max = Math.max(max, tmp);
}
return max;
}
}
简洁版:
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int tmp = 0, max = 0;
for (int n : nums)
max = Math.max(max, tmp = n == 0 ? 0 : tmp + 1);
return max;
}
}