LeetCode_485_数组_最大连续 1 的个数
Posted 軒邈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode_485_数组_最大连续 1 的个数相关的知识,希望对你有一定的参考价值。
原创:
int findMaxConsecutiveOnes(int* nums, int numsSize)
int iContinuCount = 0; /* 记录连续计数的数值 */
int iContinuCountMax = 0; /* 记录连续计数的最大值 */
if(nums == NULL || numsSize == 0)
return 0;
else
for(int i = 0; i< numsSize; i++)
if(nums[i] != 1 && nums[i] != 0) /* 如果输入非法,则结束运行 */
return 0;
else if (nums[i] == 1 && i == 0) /* 第0个数组的值 */
iContinuCount += 1;
else if(nums[i] == 1 && nums[i - 1] == 1) /* 如果数组第i个的值与第i-1的值都为1, 连续计数值加1 */
iContinuCount += 1;
else if(nums[i] == 1 && nums[i - 1] == 0) /* 如果数组第i个的值与第i-1的值都为1,连续计数值加1 */
iContinuCount += 1;
else if(nums[i] == 0) /* 如果遇到值为0时,连续计数值清0 */
iContinuCount = 0;
if(iContinuCount > iContinuCountMax) /* 连续计数值和连续计数值最大值做判断 */
iContinuCountMax = iContinuCount;
return iContinuCountMax;
借鉴:
int findMaxConsecutiveOnes(int* nums, int numsSize)
int iContinuCount = 0, iContinuCountMax = 0;
for(int i = 0; i< numsSize; i++)
if(nums[i] == 1)
iContinuCount ++;
iContinuCountMax = fmax(iContinuCountMax, iContinuCount); /* 该函数可以减少代码量 */
else
iContinuCount = 0;
return iContinuCountMax;
总结:
永远不要等待,等待没有结果,结果是自己去寻找的!
以上是关于LeetCode_485_数组_最大连续 1 的个数的主要内容,如果未能解决你的问题,请参考以下文章