近来刷LeetCode上面的题。由于是纯菜鸟,很多特简单的题都不太会,而且很多题自己设计的算法,复杂度太高,希望能借助一下这个平台,能够学到大神们更好的算法(C#实现)。
这道题比较简单。使用了两个int变量,一个是用来临时存储连续1的个数。另一个是存储当前连续1的个数的最大值。但是有一陷阱就是数组最后一个数为1的情况。
代码如下:
public class Solution {
public int FindMaxConsecutiveOnes(int[] nums) {
int n = 0;
int max = 0;
for (int i = 0; i < nums.Length ; i++)
{
if (nums[i] == 1)
{
n++;
if (i == nums.Length - 1)
{
if (n > max)
{
max = n;
}
}
}
else
{
if (n > max)
{
max = n;
}
n = 0;
}
}
return max;
}
}