给定一个二进制数组
nums
, 计算其中最大连续1
的个数。示例 1:
输入:nums = [1,1,0,1,1,1] 输出:3 解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.示例 2:
输入:nums = [1,0,1,1,0,1] 输出:2提示:
1 <= nums.length <= 105
nums[i]
不是0
就是1.
class Solution {
public int findMaxConsecutiveOnes(int[] nums) {
// 简单思路:遍历数组,统计连续1的出现次数count,一旦遇到0,则表示出现了不连续,就需要记录并比较连续1的出现次数count,保留最大的count 到max中
int max = 0; // 最大连续1的出现次数
int count =0; // 连续1的出现次数
for (int i = 0; i < nums.length;i++) {
if (nums[i] == 1) {
count++;
}else{
max = count >max ?count:max;
count = 0;
}
}
// 数组遍历完,需要比较最后一个count和max
max = count >max ?count:max;
return max;
}
}
参看bilibli视频-up主 爱学习的饲养员,讲解的很清晰。文章来源:https://www.toymoban.com/news/detail-615455.html
手把手带你刷Leetcode力扣|各个击破数据结构和算法|大厂面试必备技能【已完结】-p6 LeetCode 485文章来源地址https://www.toymoban.com/news/detail-615455.html
到了这里,关于LeetCode 刷题 数据结构 数组 485 最大连续1的个数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!