LeetCode-数组-第485题-最大连续1的个数

该博客介绍了一种算法,用于计算给定二进制数组中最大连续1的个数。通过遍历数组,用变量count累计连续1的数量,并用result保存最大值。当遇到0时,更新result并重置count。最终返回result作为最大连续1的个数。题目要求输入数组长度不超过10,000,并确保数组有效。提供的代码实现了这一逻辑。
摘要由CSDN通过智能技术生成

直接上题:

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

      示例 1:
    
      输入: [1,1,0,1,1,1]
      输出: 3
      解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
      注意:
    
      输入的数组只包含0 和1。
      输入数组的长度是正整数,且不超过 10,000。
    

解题思路:

  1. 要求使用数组
  2. 计算连续的1,每出现一次,累加 1
  3. 遇到 0 后终止累加,
  4. 求累加后的值的最大值
    由此 可以设置一个变量count = 0,用于累加,设置一个变量result = 0,用于存放最大值。

上代码:

/**
 * @author 此间乐
 * @create 2020-12-15-20:34
 */
public class FindMaxConsecutiveOnes {
    public int findMaxConsecutiveOnes(int[] nums){
        int count = 0; //有 1 时累加计算
        int result = 0;//用于存放最大的结果
        if (nums == null || nums.length == 0 || nums.length > 10000){  //首先判断传进来的数组是不是空数组
            return 0;
        }
        for (int i = 0; i < nums.length; i++) { //遍历数组,如果数组中存在1的时候,使用count+1累加
            if (nums[i] == 1){
                count = count + 1;
            }else{                               //为0时进入这一步
                result = Math.max(result,count); //比较count 和 result大小,把大的一方存到result
                count = 0; //比较完成后,将count置零,用于下一次连续 1 的累加
            }

        }

        return Math.max(result,count);   //假如最大的值出现在最后一次
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LeetCode-Editor是一种在线编码工具,它提供了一个用户友好的界面编写和运行代码。在使用LeetCode-Editor时,有时候会出现乱码的问。 乱码的原因可能是由于编码格式不兼容或者编码错误导致的。在这种情况下,我们可以尝试以下几种解决方法: 1. 检查文件编码格式:首先,我们可以检查所编辑的文件的编码格式。通常来说,常用的编码格式有UTF-8和ASCII等。我们可以将编码格式更改为正确的格式。在LeetCode-Editor中,可以通过界面设置或编辑器设置来更改编码格式。 2. 使用正确的字符集:如果乱码是由于使用了不同的字符集导致的,我们可以尝试更改使用正确的字符集。常见的字符集如Unicode或者UTF-8等。在LeetCode-Editor中,可以在编辑器中选择正确的字符集。 3. 使用合适的编辑器:有时候,乱码问可能与LeetCode-Editor自身相关。我们可以尝试使用其他编码工具,如Text Editor、Sublime Text或者IDE,看是否能够解决乱码问。 4. 查找特殊字符:如果乱码问出现在某些特殊字符上,我们可以尝试找到并替换这些字符。通过仔细检查代码,我们可以找到导致乱码的特定字符,并进行修正或替换。 总之,解决LeetCode-Editor乱码问的方法有很多。根据具体情况,我们可以尝试更改文件编码格式、使用正确的字符集、更换编辑器或者查找并替换特殊字符等方法来解决这个问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值