数组中紧跟 key 之后出现最频繁的数字
说明
给你一个下标从 0 开始的整数数组 nums ,同时给你一个整数 key ,它在 nums 出现过。
统计 在 nums 数组中紧跟着 key 后面出现的不同整数 target 的出现次数。换言之,target 的出现次数为满足以下条件的 i 的数目:
0 <= i <= n - 2
nums[i] == key 且
nums[i + 1] == target 。
请你返回出现 最多 次数的 target 。测试数据保证出现次数最多的 target 是唯一的。
代码
int result = 0;
int max = 0;
HashMap<Integer, Integer> map = new HashMap<>();
for (int i = 1; i < nums.length; i++) {
if (nums[i - 1] == key) {
if (map.containsKey(nums[i])) {
map.put(nums[i], map.get(nums[i]) + 1);
} else {
map.put(nums[i], 1);
}
}
}
for (Map.Entry<Integer, Integer> node : map.entrySet()) {
if (node.getValue() > max) {
result = node.getKey();
max = node.getValue();
}
}
return result;
思路
-
运用HashMap数组来统计key后面的数
-
在运用一个循环来判断这个数组里面出现最多的数
总结
-
今天感觉状态不太行,这个题目做了一小时,搞到后面头都大了,就没写了
-
这个代码是借鉴的别人所写出的