代码随想录二刷——栈与队列day12

文章目录

  • 前言
    • 栈与队列知识点
  • 一、 239. 滑动窗口最大值
  • 二、347. 前 K 个高频元素
  • 总结


前言

一个本硕双非的小菜鸡,备战24年秋招,计划二刷完卡子哥的刷题计划,加油!
二刷决定精刷了,于是参加了卡子哥的刷题班,训练营为期60天,我一定能坚持下去,迎来两个月后的脱变的,加油!
推荐一手卡子哥的刷题网站,感谢卡子哥。代码随想录

栈与队列知识点

栈是一种后进先出( LIFO )的数据结构,它是一种线性的、有序的数据结构。栈的基本操作有两个,即入栈和出栈。入栈指将元素放入栈顶,出栈指将栈顶元素取出。栈的本质是一个容器,它可以存储任何类型的数据,但是栈的大小是固定的,因为它的元素只能在栈顶添加或删除。
队列是一种先进先出( FIFO )的数据结构,它与栈相似,也是一种线性的、有序的数据结构。队列的基本操作有三个,即入队、出队和查看队首元素。入队指将元素放入队尾,出队指将队首元素取出。队列的本质也是一个容器,它可以存储任何类型的数据,但是队列的大小也是固定的。

一、 239. 滑动窗口最大值

239. 滑动窗口最大值
Note:实现单调队列

class Solution {
private:class Myqueue {public:deque<int> que;void pop(int value) {if (!que.empty() && value == que.front())que.pop_front();}void push(int value) {while (!que.empty() && value > que.back())que.pop_back();que.push_back(value);}int front() {return que.front();}};
public:vector<int> maxSlidingWindow(vector<int>& nums, int k) {Myqueue que;vector<int> result;for (int i = 0; i < k; i++)que.push(nums[i]);result.push_back(que.front());for (int i = k; i < nums.size(); i++) {que.pop(nums[i - k]);que.push(nums[i]);result.push_back(que.front());}return result;}
};

二、347. 前 K 个高频元素

347. 前 K 个高频元素

Note:哈希表解法

class Solution {
public:vector<int> topKFrequent(vector<int>& nums, int k) {vector<int> res;map<int, int> map;for (auto iter : nums)map[iter]++;vector<pair<int, int>> per(map.begin(), map.end());sort(per.begin(), per.end(), [](pair<int, int>& a, pair<int, int>& b) {return a.second > b.second;});auto a = per.begin();while (k--) {res.push_back(a->first);a++;}return res;}
};

Note:小顶堆

class Solution {
public:class mycomparison {public:bool operator()(const pair<int, int>& lhs, const pair<int, int>& rhs) {return lhs.second > rhs.second;}};vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int, int> map;for (int i = 0; i < nums.size(); i++) {map[nums[i]]++;}priority_queue<pair<int, int>, vector<pair<int, int>>, mycomparison> pri_que;for (unordered_map<int, int>::iterator it = map.begin(); it != map.end(); it++) {pri_que.push(*it);if (pri_que.size() > k)pri_que.pop();}vector<int> result(k);for (int i = k - 1; i >= 0; i--) {result[i] = pri_que.top().first;pri_que.pop();}return result;}
};

总结

栈和队列是两种常见的数据结构,它们分别用于解决不同类型的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java synchronized浅析

介绍synchronized synchronized 是Java编程语言中的一个关键字&#xff0c;用于实现线程间的同步。在多线程环境下&#xff0c;它确保了共享资源在同一时刻只能被一个线程访问或修改&#xff0c;从而避免了因多个线程并发操作同一数据而导致的数据不一致和竞态条件。 synchroni…

070:vue+cesium: 利用canvas设置径向渐变色材质

相关API参考: https://cesium.com/learn/cesiumjs/ref-doc/ColorMaterialProperty.html 第070个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置线性渐变色的材质,这里使用canvas的辅助方法。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. …

阴阳家邹衍的五行相生相克,比星座更火爆

古天乐主演的《寻秦记》&#xff0c;有一个老头叫“邹夫子”&#xff0c;他就是战国的邹衍。 邹衍年轻时&#xff0c;去齐国的稷下学宫&#xff0c;学习儒家。了解到天有五种德行&#xff0c;分别是仁、义、礼、智、信。 《尚书洪范》记载&#xff1a;“五行&#xff1a;一曰水…

springboot155基于JAVA语言的在线考试与学习交流网页平台

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

2024最新版Sublime Text 4安装使用指南

2024最新版Sublime Text 4安装使用指南 Installation and Usage Guide to the Latest Sublime Text 4 in 2024 By JacksonML 0. Sublime Text是什么&#xff1f; Sublime Text 由自定义组件构建&#xff0c;支持Python, Java, C/C等多种编程语言&#xff0c;并为用户提供无与…

vue2.0+使用md-edit编辑器

前言&#xff1a;小刘开发过程中&#xff0c;如果是博客项目一般是会用到富文本。众多富文本中&#xff0c;小刘选择了markdown&#xff0c;并记录分享了下来。 # 使用 npm npm i kangc/v-md-editor -Smain.js基本配置import VueMarkdownEditor from kangc/v-md-editor; import…

极狐GitLab 与 Datadog 的集成配置

Datadog 集成 引入于 14.1 版本。 此集成使您能够将 CI/CD 流水线和作业信息发送到 Datadog。Datadog 的 CI Visibility产品可帮助您监控作业失败和性能问题&#xff0c;然后对其进行故障排除。它基于 Webhook&#xff0c;只需要在极狐GitLab 上进行配置。 配置集成 具有 管理…

数模.matlab画图

一、mesh函数 上图是平常用到的方式 例题&#xff1a; 上图的meshgrid函数相当于上上图的前三个指令&#xff08;temp&#xff0c;x,y&#xff09; mash函数&#xff1a; mashc函数&#xff1a; mashz函数&#xff1a; 上图subplot函数的作用是将下标为index的图片放到对应的x&…

第一篇:数据库相关概念

相关概念&#xff1a; 数据库 英文名称&#xff1a;DataBase(DB) 简介&#xff1a;&#xff08;有组织地、按一定数据结构地、而非胡塞乱放地&#xff09;存储数据的仓库 说明&#xff1a;这是一个抽象的概念&#xff0c;所谓的“仓库”无非是一台专门用于存放数据的计算机 数…

十年炒股心得

蒙在股里 天朝老李 十年炒股两茫茫&#xff0c;先亏车&#xff0c;再赔房。 千古跌停无处话凄凉。 纵有涨停应不识&#xff0c;人跌傻&#xff0c;本赔光。 牛市幽梦难还乡&#xff0c;睡不着&#xff0c;吃不香。 望盘无言&#xff0c;惟有泪千行。 料得年年断肠处&…

基于Springboot开发的物品捎带系统[附源码]

基于Springboot开发的物品捎带系统[附源码] &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联系方式 承接各种定制系统 &#x1f…

安卓Termux+Hexo博客框架快速搭建本地网站并实现公网访问

文章目录 前言 1.安装 Hexo2.安装cpolar3.远程访问4.固定公网地址 前言 Hexo 是一个用 Nodejs 编写的快速、简洁且高效的博客框架。Hexo 使用 Markdown 解析文章&#xff0c;在几秒内&#xff0c;即可利用靓丽的主题生成静态网页。 下面介绍在Termux中安装个人hexo博客并结合…

计算机网络原理基础

目录 前言&#xff1a; 1.网络发展史 2.网络通信基础 2.1IP地址 2.1.1定义 2.1.2格式 2.2端口号 2.2.1定义 2.2.2格式 2.3协议 2.3.1定义 2.3.2作用 2.3.3分层 2.4五元组 2.4.1定义 2.4.2组成 3.TCP/IP五层网络模型 3.1模型概念 3.2模型构成 3.3网络分层对应…

SpringBoot 过滤器Filter的过滤链 多个过滤器优先级

SpringBoot 过滤器Filter 拦截请求 生命周期 什么是过滤链&#xff1f; 指的是有多个过滤器形成的过滤链&#xff0c;一个项目中可以存在多个过滤器。 优先级 根据字母排序&#xff0c;如XFilter和AFilter&#xff0c;那么按照顺序应该先到AFilter过滤器当中

一般系统的请求认证授权思路【gateway网关+jwt+redis+请求头httpheader】

gateway&#xff1a;网关&#xff0c;我们都知道网关的作用就是对系统的所有请求&#xff0c;网关都会进行拦截&#xff0c;然后做一些操作&#xff08;例如&#xff1a;设置每个请求的请求头httpHeader&#xff0c;身份认证等等&#xff09;此时一般会使用到网关过滤器&#x…

pinctrl子系统与gpio子系统实验-解决申请IO失败问题

一. 简介 前面一篇文章对Led 驱动代码进行了测试&#xff0c;测试后驱动出现错误提示&#xff0c;提示 申请IO失败。文章地址如下&#xff1a; pinctrl子系统与gpio子系统实验-对驱动进行测试-CSDN博客 本文来解决驱动代码中申请IO失败的问题。 二. Led驱动申请IO失败的解…

C++ —— 智能指针:std::unique_ptr

简介 智能指针是一种特殊的指针类型&#xff0c;它能够自动管理内存资源&#xff0c;避免常见的内存泄漏和多次释放等。在C 11标准中出现了新的智能指针unique_ptr、 shared_ptr、weak_ptr等。 std::unique_ptr 用于管理动态分配的内存资源&#xff0c;它提供了自动释放内存的功…

CVE-2024-23897:Jenkins文件读取漏洞复现分析 [附POC]

文章目录 CVE-2024-23897 Jenkins文件读取漏洞复现分析 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境搭建0x05 漏洞复现1.访问漏洞环境2.执行POC3.复现0x06 漏洞分析1.获取源码2.解压并使用IDEA打开0x07 修复建议0x08 总结

linux系统haproxy负载均衡器使用keepalived做高可用

haproxy负载均衡器做高可用 haproxykeepalived haproxykeepalived 两台负载均衡器都安装 yum -y install haproxyvim /etc/haproxy/haproxy.cfggloballog 127.0.0.1 local2 infopidfile /var/run/haproxy.pidmaxconn 4000 #优先级低user haproxygrou…

【echarts】动态滚动趋势图,解决坐标轴数据太多遮挡覆盖问题

写在前面 业务场景x轴的文字太多&#xff0c;会出现遮挡问题&#xff0c;想到文字倾斜展示&#xff0c;页面不美观&#xff0c;于是想到使用滚动条优化趋势图。 <template><div id"storeDown" style"height: 400px;width:100%"/> </temp…