を見つけることができない私はこの次のタスクを実行するために仮定したコードがあります。このように構築されたM = 3与え例えば 、および配列:私はバグを持っていることが、Javaの機能を持っていると私はそれを
A[0]=1
A[1]=1
A[2]=3
A[3]=3
A[4]=5
A[5]=1
A[6]=3
を
機能は、それが常に動作していないと私は私のプログラムにバグがある見ることができるので問題になることができるもの1または3
import java.util.*;
class Solution {
int solution(int M, int[] A) {
int N = A.length;
int[] count = new int[M + 1];
for (int i = 0; i <= M; i++)
count[i] = 0;
int maxOccurence = 1;
int index = -1;
for (int i = 0; i < N; i++) {
if (count[A[i]] > 0) {
int tmp = count[A[i]];
if (tmp > maxOccurence) {
maxOccurence = tmp;
index = i;
}
count[A[i]] = tmp + 1;
} else {
count[A[i]] = 1;
}
}
return A[index];
}
}
を返すことがあります。
* "関数は1または3を返すことがあります" * - なぜですか?どのようなロジックが起こるはずですか?この要件だけが 'return 3;'が有効な実装であるとすれば、 – luk2302
入力Mとは何ですか?その目的は何ですか?言い換えれば、あなたの仕事は何を達成しようとしていますか?あなたは、あなたの例が1または3を返すと言うので、それはモードを計算しようとしていますか? – sharur
M以上の出現数を持つ配列要素はおそらく –