博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Max Consecutive Ones 最大连续1的个数
阅读量:7111 次
发布时间:2019-06-28

本文共 1142 字,大约阅读时间需要 3 分钟。

Given a binary array, find the maximum number of consecutive 1s in this array.

Example 1:

Input: [1,1,0,1,1,1]Output: 3Explanation: The first two digits or the last three digits are consecutive 1s.    The maximum number of consecutive 1s is 3.

Note:

  • The input array will only contain 0 and 1.
  • The length of input array is a positive integer and will not exceed 10,000

 

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

解法一:

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

由于是个二进制数组,所以数组中的数字只能是0或1,那么连续1的和跟个数相等,所以我们可以计算和,通过加上num,再乘以num来计算,如果当前数字是0,那么sum就被重置为0,还是要更新结果res,参见代码如下:

解法二:

class Solution {public:    int findMaxConsecutiveOnes(vector
& nums) { int res = 0, sum = 0; for (int num : nums) { sum = (sum + num) * num; res = max(res, sum); } return res; }};

本文转自博客园Grandyang的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
50个必备的实用jQuery代码段
查看>>
网站安装打包 修改app.config[六]
查看>>
git 安装使用
查看>>
hive 分区表、桶表和外部表
查看>>
eclipse查看java方法域
查看>>
Linux系统究竟我要怎样学?
查看>>
正在学习linux的我写一封信给十年后的自己
查看>>
利用scp 远程上传下载文件/文件夹
查看>>
Android的View坐标学习
查看>>
Windows下无窗口后台运行程序: ShellExecute
查看>>
在windows下使用OpenSSH(上)
查看>>
H5实现之登录模版的实现
查看>>
读《美丽新世界》
查看>>
第三章 spring-bean之DefaultListableBeanFactory(7)
查看>>
netty http2设计深入讲解
查看>>
一、RabbitMQ核心概念
查看>>
SQL2008导入数据库,标识规范 都否的解决办法
查看>>
learning
查看>>
kafka 基础01
查看>>
UIScrollView实现图片循环滚动
查看>>