[LeetCode] 485. Max Consecutive Ones (C++)

版权声明:本文为博主原创文章,未经博主允许不得转载。@ceezyyy11 https://blog.csdn.net/ceezyyy11/article/details/88956814

[LeetCode] 485. Max Consecutive Ones (C++)

Easy

Share
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

class Solution {
public:
	int findMaxConsecutiveOnes(vector<int>& nums) {
		vector<int> res;
		int tempCount = 0;  /* count the number of consecutive 1s */

		for (int i = 0; i < nums.size(); i++) {
			if (nums.at(i) != 0) {
				tempCount++;
			}
			else {
				res.push_back(tempCount);
				/*
				Each length(number) of consecutive 1s,
				here use vector in order to find the maximum number
				by sorting the array
				*/
				tempCount = 0;
			}
		}
		res.push_back(tempCount);  /* it can return zero even if all elements are zero */
		sort(res.begin(), res.end(), greater<int>());  /* find the maximum number of consecutive 1s */
		return res.at(0);
	}
};

猜你喜欢

转载自blog.csdn.net/ceezyyy11/article/details/88956814