int findMaxConsecutiveOnes(int* nums, int numsSize){
int i, tmp=INT_MIN, max = 0;
int arr[numsSize];
int cnt = 0;
for(i=0; i<numsSize; ++i){
if(nums[i]){
cnt++;
}else{
cnt = 0;
}
arr[i] = cnt;
}
for(i=numsSize-2; i>=0; i--){
if(arr[i] && arr[i+1]) {
arr[i] = arr[i+1];
}else{
}
}
for(i=0; i<numsSize; ++i){
if(nums[i]) continue;
tmp = (i>=1 ? arr[i-1] : 0) + (i<numsSize-1 ? arr[i+1] : 0);
if(tmp > max)
max = tmp;
}
if(tmp == INT_MIN) return numsSize;
return max + 1;
}
leetcode-487-最大连续1的个数II-C语言
最新推荐文章于 2022-08-08 08:03:47 发布