leetcode 6024 数组中紧跟 key 之后出现最频繁的数字

119 阅读1分钟

leetcode 6024 数组中紧跟 key 之后出现最频繁的数字

思路

  1. 做一个数组映射 arr[1010],存入某个数的频次(替代 map );
  2. 遍历找到每一个 key 后的值;
  3. arr[key 后的值]++;
  4. 遍历一次 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;
    }
};