码迷,mamicode.com
首页 > 其他好文 > 详细

Max Consecutive Ones——leetcode

时间:2018-03-17 21:42:03      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:ons   exp   cto   一个   only   ++   连续   vector   div   

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:

  • 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的个数。考虑存储一个数吧。

class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums) {
        
        int sum = 0;
        int max=0;
        
        for(int i = 0; i != nums.size(); ++i)
        {
            
            if(nums[i] != 0)
            {
                sum+=nums[i];
            }
            else
            {
                max = max > sum ? max : sum;
                sum=0;
            }
            
        }    
        return max>sum?max:sum;//考虑没有0的情况  
    }
};

好像真的不是很简洁,去看了看discuss的代码= =!!,真的有点差距

贴一个比较赶脚直观的吧

int findMaxConsecutiveOnes(vector<int>& nums) {
        int max_cnt = 0, cnt = 0;
        for (auto n : nums) {
            if (n == 1) max_cnt = max(++cnt, max_cnt);
            else cnt = 0;
        }
        return max_cnt;
    }

 

Max Consecutive Ones——leetcode

标签:ons   exp   cto   一个   only   ++   连续   vector   div   

原文地址:https://www.cnblogs.com/jiadyang/p/8592729.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!