九章算法 | 拼多多面试题:前三大数
程序员文章站
2022-07-14 12:22:13
...
【题目描述】
取出数组中最大的三个数
在线评测地址: LintCode 领扣
样例 :
输入: [1000,1000,1000,999,998]
输出: [1000,999,998]
【题解】
利用set在完成去重的同时完成排序,获取set中最大的三个数字即可
public class Solution {
/**
* @param arr: An array
* @return: Get the three largest numbers in the array
*/
public List<Integer> TopThree(List<Integer> arr) {
TreeSet<Integer> tmp = new TreeSet<Integer>();
for (int k:arr) {
tmp.add(k);
}
Iterator<Integer> it = tmp.descendingIterator();
List<Integer> res = new ArrayList<Integer>();
int cou = 0;
while(it.hasNext() && cou < 3){
res.add(it.next());
cou++;
}
return res;
}
}
更多语言代码参见:九章算法