我有這樣的代碼,該做以下任務: 例如,假設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個事件的數組元素也許是 – 2017-08-31 16:47:12