1. 程式人生 > >Max Consecutive Ones——leetcode

Max Consecutive Ones——leetcode

== ati 直觀 his bin positive nes += ons

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