最大连续1的个数

题目描述

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

示例 1:

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

注意:

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

分析

这道题让我们求最大连续1的个数,不是一道难题。我们可以遍历一遍数组,用一个计数器cnt来统计1的个数,方法是如果当前数字为0,那么cnt重置为0,如果不是0,cnt自增1,然后每次更新结果res即可。

贴出代码

class Solution {
    public int findMaxConsecutiveOnes(int[] nums) {
        int res = 0, cnt = 0;
        for(int num : nums) {
            cnt = (num == 0) ? 0 : cnt +1;
            res = Integer.max(res, cnt);
        }
        return res;
    }
}

原文地址:https://www.cnblogs.com/Tu9oh0st/p/10704496.html

时间: 2024-10-31 21:39:32

最大连续1的个数的相关文章

Light oj 1138 - Trailing Zeroes (III) 【二分查找 && N!中末尾连续0的个数】

1138 - Trailing Zeroes (III) PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the trail in decimal notation. As you know N! = 1*2*...*N. F

统计数列中是连续数的个数

数据库环境:SQL SERVER2008R2 今天在群里看到一位网友提的需求,要求统计一组数据中前3位是连续数的个数,具体看贴图. 实现这个需求蛮简单的,说下我的思路: 取前3位,然后减去123,再和111求余,如果结果是0,说明这3位数连续. 是不是很简单呀,下面直接上代码. /*数据准备*/ WITH x0 AS ( SELECT 1234 AS tn UNION ALL SELECT 1235 AS tn UNION ALL SELECT 1236 AS tn UNION ALL SELE

(笔试题)N!尾部连续0的个数

题目: 对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度.如:18!=6402373705728000,尾部连续0的个数是3. (不用考虑数值超出计算机整数界限的问题) 思路: 1.直接计算N!的值,然后统计尾部0的个数,时间复杂度O(n): 2.发散思维,想想尾部为0的数是怎么得到的? 很容易想到2*5即可得到0,则N!可以表示为k*(2^m)*(5^n),由于在N!中m>>n,因此N!=k'*(2*5)^n,即n为尾部为0的个数. 由此,我们只要考虑N!中包含多少

统计连续数的个数

#include<iostream> using namespace std; void count() { int value; int cnt; int curvalue; if(cin>>curvalue) { cnt=1; while(cin>>value) { if(curvalue==value) cnt++; else { cout<<"current value:"<<curvalue<<"

485 Max Consecutive Ones 最大连续1的个数

给定一个二进制数组, 计算其中最大连续1的个数.示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:    输入的数组只包含 0 和1.    输入数组的长度是正整数,且不超过 10,000.详见:https://leetcode.com/problems/max-consecutive-ones/description/ C++: class Solution { public: int findMaxConsecu

领扣(LeetCode)最大连续1的个数 个人题解

给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组只包含 0 和1. 输入数组的长度是正整数,且不超过 10,000. 思路比较简单的.找到1出现的位置,遍历完剩下的1,如果1的个数刷新了1的最大值,就更新最大值,并且从新的位置继续遍历. 代码如下: 1 class Solution { 2 public int findMaxConsecutiv

LeetCode(485. 最大连续1的个数)

问题描述 给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组只包含 0 和1. 输入数组的长度是正整数,且不超过 10,000. 解决方案 class Solution: def findMaxConsecutiveOnes(self, nums): """ :type nums: List[int] :rtype: int &

[Swift]LeetCode485. 最大连续1的个数 | Max Consecutive Ones

Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1,1,0,1,1,1] Output: 3 Explanation: The first two digits or the last three digits are consecutive 1s. The maximum number of consecutive 1s is 3.  Note:

leetcode 最大连续1的个数 III

1004. 最大连续1的个数 III 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1: 输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2 输出:6 解释: [1,1,1,0,0,1,1,1,1,1,1] 粗体数字从 0 翻转到 1,最长的子数组长度为 6. 示例 2: 输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3