给定一个二进制数组
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和maxmax = count >max ?count:max;return max;}
}
参看bilibli视频-up主 爱学习的饲养员,讲解的很清晰。
手把手带你刷Leetcode力扣|各个击破数据结构和算法|大厂面试必备技能【已完结】-p6 LeetCode 485