当前位置: 首页 > news >正文

殡仪馆做网站的好处合肥租房网

殡仪馆做网站的好处,合肥租房网,网站建设服装在线商城实训报告,做信息网站能挣钱吗day13 2023.12.11 代码随想录 今天刚出差回来#xff0c;拉下了很多天的博客#xff0c;慢慢补吧#xff0c;每天做当天的任务#xff0c;再补一篇博客。 1. 239滑动窗口最大值 本题就是每次窗口内容放在一个单调队列中#xff0c;那么每次直接返回队头元素#xff08;最…day13 2023.12.11 代码随想录 今天刚出差回来拉下了很多天的博客慢慢补吧每天做当天的任务再补一篇博客。 1. 239滑动窗口最大值 本题就是每次窗口内容放在一个单调队列中那么每次直接返回队头元素最大值即可在删一个元素以及填一个元素。所以关键就是这个单调队列怎么创建以及每次滑动该队列元素怎么变化。 首先就是创建单调队列实际我们要维护的单调队列内容并不包括所有窗口的元素例如{2, 3, 5, 1 ,4}单调队列里只维护{5, 4} 。保持单调队列里单调递减此时队列出口元素就是窗口里最大元素。创建该队列要求是每次增加元素要小于队尾元素即满足单调。如果大于队尾元素将队尾元素弹出。比如。先增加2再增加3时要增加的3队尾元素2因此弹出2增加3。增加5同理增加1时1小于队尾元素5正常添加。。。如此往下 单调队列创建后就要随窗口滑动不断更新如果滑动窗口要弹出的值队头元素即为最大值则需要改变单调队列。弹出队头元素即可。如果不等于则表示这次窗口滑动删掉的元素不影响新的单调队列因此单调队列不用改变这是滑动删除的元素。滑动也会增加一个元素增加元素后要保证队列仍是单调队列。同创建队列的要求。 每次窗口滑动满足上述要求则每次滑动只需要返回队头元素即可添加到一个结果数组即可。 class Solution { private:class MyQueue{public:dequeint que;void pop(int value){//每次将窗口删除的元素传给队列,等于队头则弹出队头if(!que.empty() value que.front()){que.pop_front();}}void push(int value){while(!que.empty() valueque.back()){que.pop_back();}que.push_back(value);}int front(){return que.front();}}; public:vectorint maxSlidingWindow(vectorint nums, int k) {MyQueue que;vectorint result;for(int i0;ik;i){que.push(nums[i]);}result.push_back(que.front());for(int ik;inums.size();i){que.pop(nums[i-k]);que.push(nums[i]);result.push_back(que.front());}return result;} };2. 347前K个高频元素 今天两道题难度都挺高的。所以都是直接看文字解释的。首先统计每个元素出现的频率想到的就是map。再根据map的value也就是频率构建小根堆。这些概念很熟悉但却没写过相应的代码因此这次理解起来还可以但对于代码不是很熟悉。慢慢来吧。保证小根堆大小为k每次删除头最小频率则遍历完后最后的小根堆就是要的k个频率最大的值。 class Solution { public:// 小顶堆class mycomparison {public:bool operator()(const pairint, int lhs, const pairint, int rhs) {return lhs.second rhs.second;}};vectorint topKFrequent(vectorint nums, int k) {// 要统计元素出现频率unordered_mapint, int map; // mapnums[i],对应出现的次数for (int i 0; i nums.size(); i) {map[nums[i]];}// 对频率排序// 定义一个小顶堆大小为kpriority_queuepairint, int, vectorpairint, int, mycomparison pri_que;// 用固定大小为k的小顶堆扫面所有频率的数值for (unordered_mapint, int::iterator it map.begin(); it ! map.end(); it) {pri_que.push(*it);if (pri_que.size() k) { // 如果堆的大小大于了K则队列弹出保证堆的大小一直为kpri_que.pop();}}// 找出前K个高频元素因为小顶堆先弹出的是最小的所以倒序来输出到数组vectorint result(k);for (int i k - 1; i 0; i--) {result[i] pri_que.top().first;pri_que.pop();}return result;} };
http://www.huolong8.cn/news/93267/

相关文章:

  • 开发一个网站的步骤网页制作基础教程第一版
  • 强的网站建设做外贸仿牌网站
  • 自动化营销网站建设电子产品东莞网站建设
  • 如何网站建设 需要详细的步骤冻品网站建设
  • 网站被k了做网站敲代码的图片
  • 从事网站开发企业门户网站管理办法
  • 把网站制作成app社交网站模版
  • 下载网站的搭建网站建设与管理好吗
  • 北京网站优化招聘网站推广策略的控制和效果评价
  • 烟台开发区做网站房屋装修设计公司
  • 广东官网网站建设价格鞍山钟点工招聘信息
  • 给城市建设提议献策的网站电子商务网站建设应该侧重哪方面
  • 杭州做网站哪家最好怎样做自己的小说网站
  • 怎么提高网站加载速度慢营销网站建设需要多少钱
  • 佛山市桂城建设局网站在线直播网站建设
  • 做框架模板的网站阿里云linux服务器搭建多个网站
  • 网站图片设置隐私保护怎么下载品牌词优化
  • 建设银行官方网站个人做瞹瞹嗳视频网站在线观看
  • 网站上传 文件夹结构网站建设中的智能元素
  • 网站建设公司怎么谈单excel服务器做网站
  • 从信息化建设办公室网站深汕特别合作区在哪里
  • 铆钉机 东莞网站建设官网制作价格
  • 网站源文件鹤城机关建设网站
  • aspnet网站开发教程数据库手机中国网官网
  • 网站建设的成本有哪些方面工商企业查询网
  • 中国建设银行官企业网站东莞网站seo公司
  • 普法网站建设方案新上线网站如何做搜索引擎
  • 设计师网站建设用wordpress做的博客
  • 商城网站定制建设价位帮别人建网站赚钱吗
  • 网站建设估价手机做网站软件