前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 485:连续最大1的个数 Max Consecutive Ones(python java)

LeetCode 485:连续最大1的个数 Max Consecutive Ones(python java)

原创
作者头像
爱写bug
修改2019-07-01 18:40:48
4470
修改2019-07-01 18:40:48
举报
文章被收录于专栏:爱写Bug爱写Bug

公众号:爱写bug

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

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

**示例 1:**

```

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

输出: 3

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

```

**注意:**

- 输入的数组只包含 `0` 和`1`。

- 输入数组的长度是正整数,且不超过 10,000。

**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的个数,遇1就累加1,遇0就倒置为0。具体见 Java 注释。

### Java:

```java

class Solution{

public int findMaxConsecutiveOnes(int[] nums) {

int temp=0,count=0;//temp记录当前连续1的个数,count记录当前最大连续1的个数

for (int i=0;i<nums.length;i++){//指针右移

if(nums[i]==1){

temp++;//遇1累加1

}else{

if(count<temp){

count=temp;//记录目前最大连续1的个数

}

temp=0;//遇0倒置为0

}

}

return (count>temp)? count:temp;//返回count、temp中较大的数

}

}

```

**注意:**

​ 返回值必须是`count` 与`temp` 中较大的一个。明明已经比较了`count`和`temp`,并把较大的赋值给`count` ,很明显是`count` 更大,为什么还要比较?

​ 这是因为还有一种输入数组全为1的情况,此时temp一直累加,从未遇到0,所以count自始至终都不可能得到temp的值。

### python3:

```python

class Solution:

def findMaxConsecutiveOnes(self, nums: List[int]) -> int:

count=temp=0

for num in nums:

if num==1:

temp+=1

else:

if(count<temp):

count=temp

temp=0

return count if count>temp else temp

```

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档