题目
Given a binary array, find the maximum number of consecutive 1s in this array.
给定一个二进制数组(元素只有0和1的数组),找出数组中最多有多少个连续的1?
思路
遍历整个数组,如果遇到1则将计数器count+1,如果遇到0则将result赋值为Max{count, result},然后count归零。最后一段的可能是连续的1没有0,则此情况下无法触发检查result的代码,result少更新了一次,因此遍历完数组后再检查一次result是否要更新。
实现代码
int findMaxConsecutiveOnes(int* nums, int numsSize){
int result = 0;
int temp = 0;
for (int i = 0; i <= numsSize-1; i++) {
if (nums[i] == 1) {
temp++;
}
else if (nums[i] == 0) {
result = (temp > result) ? temp : result;
temp = 0;
}
}
result = (temp > result) ? temp : result;
return result;
}