题目
- 给定一个二进制数组, 计算其中最大连续1的个数。
示例 1:
输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
注意:
输入的数组只包含 0 和1。
输入数组的长度是正整数,且不超过 10,000。
代码
- 做法1
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int max = 0;
int begin = 0;
int end = 0;
for (int i = 0; i < nums.length; i++) {
if ((i == 0 && nums[i] == 1) || ((nums[i]==1)&&(nums[i-1]==0))) {
begin = i;
}
if ((i == nums.length - 1 && nums[i] == 1) || ((nums[i] == 1 && nums[i + 1] == 0))) {
end = i;
max = Math.max((end - begin + 1), max);
}
}
return max;
}
}
- 做法 2
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
int count = 0;
int maxCount = 0;
for(int i = 0; i < nums.length; i++) {
if(nums[i] == 1) {
// Increment the count of 1's by one.
count += 1;
} else {
// Find the maximum till now.
maxCount = Math.max(maxCount, count);
// Reset count of 1.
count = 0;
}
}
return Math.max(maxCount, count);
}
}
做法2结果
用时 | 内存 |
---|---|
击败95% | 击败76% |
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/roman-to-integer
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。