您的位置 首页 java

java算法题-最大连续 1 的个数

在leetcode()上看到一道有趣的算法题:

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

示例:

提示:

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

这样的题你会怎么用 java 实现呢?

分享一下我的解题思路:

 public int findMaxConsecutiveOnes(int[] nums) {
        int sum = 0;
        int cache = 0;
        for (int i = 0, length = nums.length; i < length; i++) {
            if (nums[i] != 1) {
                sum = Math.max(sum, cache);
                cache = 0;
            } else {
                cache += 1;
                if (i == length - 1) {
                    sum = Math.max(sum, cache);
                }
            }
        }
        return sum;
    }  

结果:

输入:[1,1,0,1,1,1]
输出:3

leetcode上对该答案的分析如下:

42 / 42 个通过 测试用例

状态: 通过

执行用时: 2 ms

内存消耗: 40.3 MB

执行用时分布图表

执行消耗内存分布图表

大家有更好的解题思路吗?欢迎在评论区作答哈~

文章来源:智云一二三科技

文章标题:java算法题-最大连续 1 的个数

文章地址:https://www.zhihuclub.com/195106.shtml

关于作者: 智云科技

热门文章

网站地图