力扣

这题跟下面这道以前刷过的题思路基本一样,并且难度确实简单,是几分钟就做出来并且正确通过的题目,只能说勤练带来力量。

674.最长增长序列

题干:

给定一个二进制数组, 计算其中最大连续1的个数。

示例:

输入: [1,1,0,1,1,1]
输出: 3
解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.

注意

  • 输入的数组只包含 01
  • 输入数组的长度是正整数,且不超过 10,000。

这就很简单了,用一个变量保存当前连续1的个数,1个变量保存最大连续1的个数,当这个连续断掉或者直到遍历完数组也没断掉就和历史连续1个数相比,最后返回最大值

    /**
     * 485 最大连续1的个数
     * 思路:遍历,用一个变量保存连续1的个数即可
     *
     * @param nums 数组
     * @return
     */
    public static int findMaxConsecutiveOnes(int[] nums) {
        int maxCount = 0;
        int count = 0;
        boolean isOne = false;
        // 边界确认
        if (nums == null || nums.length == 0) {
            return 0;
        }

        for (int num : nums) {
            if (num == 1 ) {
                count++;
            } else {
                maxCount = Math.max(count, maxCount);
                count = 0;
            }
        }
        maxCount = Math.max(count, maxCount);
        return maxCount;
    }

image-20200814010359712

Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

最是人间留不住,曾是惊鸿照影来。