【发布时间】:2019-05-11 01:27:09
【问题描述】:
大家好,请检查问题HackerRank Problem Statement
这是我对上述问题的解决方案(链接)
static int migratoryBirds(List<Integer> arr) {
int ar[]=new int[arr.size()];
for(int i=0;i<arr.size();i++){
ar[i] = Collections.frequency(arr,arr.get(i));
// ar[i] = obj.occuranceOfElement(arr,arr.get(i));
}
int maxAt = 0;
for (int i = 0; i < ar.length; i++) {
maxAt = ar[i] > ar[maxAt] ? i : maxAt;
}
return arr.get(maxAt);
}
当数组大小变大时,我的代码无法处理,例如数组中有 17623 个元素。
由于超时而终止
问题出在第二个 for 循环中,它遍历数组并为我提供数组中最大数字的索引。有没有其他方法可以提高性能。 p>
【问题讨论】:
标签: java arrays performance collections