LeetCode 刷题 数据结构 数组 485 最大连续1的个数

给定一个二进制数组 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;
    }
}

LeetCode 刷题 数据结构 数组 485 最大连续1的个数_第1张图片

 LeetCode 刷题 数据结构 数组 485 最大连续1的个数_第2张图片

参看bilibli视频-up主 爱学习的饲养员,讲解的很清晰。

手把手带你刷Leetcode力扣|各个击破数据结构和算法|大厂面试必备技能【已完结】-p6 LeetCode 485

你可能感兴趣的:(刷题,数据结构,leetcode,算法)