leetcode 6024 数组中紧跟 key 之后出现最频繁的数字
思路
- 做一个数组映射 arr[1010],存入某个数的频次(替代 map );
- 遍历找到每一个 key 后的值;
- arr[key 后的值]++;
- 遍历一次 arr 取 max;
题解
class Solution {
public:
int mostFrequent(vector<int>& nums, int key) {
int arr[1010] = {0};
for(int i = 0; i < nums.size() - 1; i++) {
if(nums[i] == key) {
arr[nums[i + 1]]++;
}
}
// 出现的数中的最大频率
int max = arr[0];
// 保存最高频的数
int target = 1;
// 最后找出出现次数最多的target即可
for(int i = 1; i <= 1000; i++) {
if(arr[i] > max) {
target = i;
max = arr[i];
}
}
return target;
}
};