485. Max Consecutive Ones
Description
Given a binary array, find the maximum number of consecutive 1s in this array.
Example: 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: 1. The input array will only contain 0 and 1. 2. The length of input array is a positive integer and will not exceed 10,000
Solution
//题目意思就是寻找0-1数组中连续出现的1的子串的最大长度
//思路就是 设置临时最长长度,每次遇到1就累加,遇到0就更新真实最长长度并清零。
//需要注意的是,在循环之外也需要更新一下max,因为如果末尾的1串没有0,在循环内就不会进入更新模块
int findMaxConsecutiveOnes(int* nums, int numsSize) {
int temp_max = 0,max = 0;
for (int i = 0;i < numsSize;i++) {
if (nums[i] == 1) {
temp_max++;
}
else {
if (temp_max > max)
max = temp_max;
temp_max = 0;
}
}
if (temp_max > max)
max = temp_max;
return max;
}