您现在的位置是:首页 > 文章详情

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

日期:2019-06-30点击:378

公众号:爱写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.

注意:

  • 输入的数组只包含 01
  • 输入数组的长度是正整数,且不超过 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:

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中较大的数 } }

注意:

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

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

python3:

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
原文链接:https://yq.aliyun.com/articles/707009
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章