小工具知识网

当前位置: 首页 > 行业知识 > Day13 LeetCode 239、347

行业知识

Day13 LeetCode 239、347

2026-11-01 12:15:14 来源:互联网转载

今日内容: 

()
  • ��239. 滑动窗口最大值
    •  347.前 K 个高频元素
      •  总结

         239. 滑动窗口最大值 (一刷至少需要理解思路)

        ()

        队列的应用

        使用双端队列,构建单调递减队列,队首元素为最大值,自定义数据结构

        class Solution {private:    class Myqueue{    public:        deque que;//双端队列        void pop(int val){           if(!que.empty() && val == que.front()){               que.pop_front();            }        }        void push(int val){            while(!que.empty() && val > que.back()){                que.pop_back();                     }            que.push_back(val);        }        int getMax(){            return que.front();        }    };public:        vector maxSlidingWindow(vector& nums, int k) {        Myqueue que;        vector  result;        for(int i = 0; i   

         

        题目链接/文章讲解/视频讲解:代码随想录

         347.前 K 个高频元素  (一刷至少需要理解思路)

        大/小顶堆的应用, 在C++中就是优先级队列 ,在优先级队列中保存map数组,以value值作为排序比较数值。

        class Solution {public:    //重写比较逻辑    class greater{    public:        bool operator()(const pair& key1,const pair& key2){            return key1.second > key2.second;        }    };    vector topKFrequent(vector& nums, int k) {        //统计元素出现频率        unordered_map map;//键值对形式 key:nums[i] value:出现频率        for(int i = 0; i  k){                pri_que.pop();            }        }        //保存频率前k高的元素        vector result(k);        for(int i = k - 1; i >= 0; i--){            result[i] = pri_que.top().first;            pri_que.pop();        }        return result;    }};

        题目链接/文章讲解/视频讲解:代码随想录

         总结 

        栈与队列

        代码随想录

上一篇:掌握分身技巧,轻松下载分身软件秘籍!

下一篇:服务器类型怎么选择?