LeetCode——485,最大连续1的个数

本文详细介绍了如何解决LeetCode上的第485题,即求解二进制数组中最大连续1的个数。通过遍历数组并维护一个窗口大小,我们可以有效地找出最大连续1的子数组。此问题涉及到二进制操作和动态规划的基本思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * \* Created: liuhuichao
 * \* Date: 2019/4/23
 * \* Time: 7:53 PM
 * \* Description:最大连续1的个数
 * 给定一个二进制数组, 计算其中最大连续1的个数。
 * <p>
 * 示例 1:
 * <p>
 * 输入: [1,1,0,1,1,1]
 * 输出: 3
 * 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
 * 注意:
 * <p>
 * 输入的数组只包含 0 和1。
 * 输入数组的长度是正整数,且不超过 10,000。
 * <p>
 * \
 */
public class A485_MaxConsecutiveOnes {

    public int findMaxConsecutiveOnes(int[] nums) {
        int max = 0;
        int begin = 0;
        int end = 0;
        while (end < nums.length) {
            if (nums[begin] == 1 && nums[end] == 1) {
                max = Math.max(end - begin + 1, max);
            } else {
                begin = end + 1;
            }
            end++;
        }
        return max;
    }

    @Test
    public void test() {
        int[] nums = {1, 0, 1, 1, 0, 1};
        System.out.println("result = " + findMaxConsecutiveOnes(nums));
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CopyProfessor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值