面经:去哪儿一面
作者:互联网
- 自我介绍
- 算法题:对数组排序,取最大值,最小值,重复次数最多的值
其中排序使用的是:
Arrays.sort(nums)
使用HashMap时,注意迭代的方式:Iterator iterator = map.keySet().iterator();
完整代码如下:
public class MapIterator {
public static void main(String args[]) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = in.nextInt();
}
Arrays.sort(nums);
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < n; i++) {
int count = map.getOrDefault(nums[i], 0);
if (count == 0) {
map.put(nums[i], 1);
} else {
map.remove(nums[i]);
map.put(nums[i], count+1);
}
}
int max = Integer.MIN_VALUE;
int frekey = -1;
Iterator iterator = map.keySet().iterator();
while (iterator.hasNext()) {
int key = (int)iterator.next();
int count = map.get(key);
if (count > max) {
max = count;
frekey = key;
}
}
System.out.println("最大值:" + nums[n-1]);
System.out.println("最小值:" + nums[0]);
System.out.println("重复次数最多的值:" + frekey);
}
}
- MySQL如何查看前50行数据(limit)
- MySQL如何查看一个查询语句是否使用了索引(explain)
- 项目中用的什么协议(http)
- get和post有什么区别
- 状态码500和502有什么区别
- 反问
标签:一面,map,哪儿,iterator,nums,int,面经,count,System 来源: https://www.cnblogs.com/yuanyunjing/p/15328903.html