1
配列内で最大の連続する1の数を求められました。 [1,0,1,1]、回答がなければならない2.入力が非常に大きくなると、findConsecutiveOnes Javaコードに問題が発生します。なぜですか?
に、手段
はIコードを書き、入力が小さいアレイである場合にはうまく機能します。
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を返します。私は私のコードが間違っているのか分かりません。誰かが私に手がかりを与えることができますか?
ありがとうございました!
なぜ0になったときに 'finalMax = max'を設定していますか? – shmosel
私はこの時点で最大値を覚えているので....ああ!私は、これを行う必要はないことがわかりますか?私の次のステップは、値を格納することです....ああ... –
また、ここでサイズが問題になる可能性は低いです。入力したパターンを調べてください。特定の(できればより短い)例を投稿すると、それが役に立ちます。 – shmosel