我有这样的代码,该做以下任务: 例如,假设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