我被要求找出数组中最大连续 1 的数量。
这意味着,在 [1,0,1,1] 中,答案应该是 2。
我编写了一个代码,当输入是小数组时它运行良好。
public int findMaxConsecutiveOnes(int[] nums) {
if (nums == null) return 0;
int max = 0;
int finalMax = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 1){
max += 1;
} else {
if (max != 0) finalMax = max;
max = 0;
}
finalMax = Math.max(max, finalMax);
}
return finalMax;
}
但是当你尝试一个 2840 的 1 数组时,它将返回 2317。我不知道我的代码有什么问题。有人可以给我线索吗?
谢谢!!!
最佳答案
public int findMaxConsecutiveOnes(int[] nums) {
if (nums == null) return 0;
int max = 0;
int finalMax = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] == 1){
max += 1;
} else {
finalMax = Math.max(max, finalMax);
max = 0;
}
}
finalMax = Math.max(max, finalMax);
return finalMax;
}
关于java - 当输入变得很大时,findConsecutiveOnes Java代码会出现问题,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42059609/