给定一个二进制数组, 计算其中最大连续1的个数。
示例 1:
输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.
注意:
- 输入的数组只包含
0
和1
。 - 输入数组的长度是正整数,且不超过 10,000。
public class Solution {
public int FindMaxConsecutiveOnes(int[] nums) {
int count = 0, tmp = 0;
foreach (var n in nums)
{
if (n != 0)
tmp += 1;
else
tmp = 0;
count = Math.Max(count, tmp);
}
return count;
}
}
这是我第一想到的方法,可是变态的例子却无法通过
public int FindMaxConsecutiveOnes(int[] nums)
{
int max = 0;int count = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] == 1)
{
count++;
}
else
{
if (count>max)
{
max = count;
count = 0;
}
}
}
//还差最后一组为一的没有匹配到因为遇到0才进行比较
if (count>max)
{
max = count;
}
return max;
}
总结,以后比大小用Math.min( )、
2、数量大的循环还是用foreach()吧