LeetCode: 485 Max Consecutive Ones(easy)

题目:

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 {
 2 public:
 3     int findMaxConsecutiveOnes(vector<int>& nums) {
 4         int count = 0, max = 0;
 5         for (int i = 0; i < nums.size(); i++) {
 6             if (nums[i] == 1 && (!i || nums[i - 1] != 1)) count = 1;
 7             else if (i && nums[i] == 1 && nums[i - 1] == 1) count++;
 8             if (max < count) max = count;
 9         }
10         if (max < count) max = count;
11         return max;
12     }
13 };

自己的:

 1 class Solution {
 2 public:
 3     int findMaxConsecutiveOnes(vector<int>& nums) {
 4         int result = 0;
 5         int tem = 0;
 6         nums.push_back(0);
 7         for (auto c : nums){
 8             if(c == 0){
 9                 if ( tem > result)
10                     result = tem;
11                 tem = 0;
12             }
13             else
14                 tem++;
15         }
16         return result;
17     }
18 };

posted on 2017-08-28 09:38  玲珑子  阅读(129)  评论(0编辑  收藏  举报

导航