尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
代码随想录算法训练营Day-11 | 150. 逆波兰表达式求值、239. 滑动窗口最大值、 347.前 K 个高频元素
150. 逆波兰表达式求值文章链接 完成情况看完逆波兰表达式原理自己想出了思路15minAC思路遍历字符串遇到加减乘除就从栈里弹出两个值进行计算再进入栈是数字就继续入栈最后弹出栈顶就是最后计算结果注意事项stoi()-转换为int、stol()-转换为long、stoll()-转换为long long、stoul()-转换为unsigned long、stoull()-转换为unsigned long longint evalRPN(vectorstring tokens) { stacklong long st; for(auto i:tokens){ if(i||i-||i*||i/){ int b st.top(); st.pop(); int a st.top(); st.pop(); if(i) st.push(ab); else if(i-) st.push(a-b); else if(i*) st.push(a*b); else if(i/) st.push(a/b); }else{ st.push(stoll(i)); } } return st.top(); }239. 滑动窗口最大值文章链接 完成情况看文章视频花费约1hAC本题学习了使用双向队列构造新功能列其常用函数为push_front(); pop_front(); push_back(); pop_back(); front(); back()思路本题构造了新功能列列包含pop、push和front函数其中push规则为如果push值大于队尾元素删除队尾直到push值前面没有比它大的值该操作可以实现队列元素始终降序排放pop函数规则为判断队头是否是要删除的值判断好之后再删因为push操作会提前删掉本来就应该删的元素front函数无处理就是弹出队头但由于队列元素降序排放所以队头就是最大值题目函数中执行先push前k个元素返回队头得到第一个结果放入result数组-从k开始遍历数组每次执行pop窗口左边元素push窗口右边元素返回front。class MyQueue{ public: dequeint qe; void pop(int v){ if(!qe.empty() vqe.front()) qe.pop_front(); //因为队列降序排列所以比队头小的元素已经提前删掉所以在删除元素时要判断是不是真的要pop队头若要删除的元素队头则确实应该删掉再删如果不等于队头则说明已经删过了则无需处理 } void push(int v){ while(!qe.empty() vqe.back()) qe.pop_back();//保证新进元素前面没有比自己大的元素也就是队列元素降序排列 qe.push_back(v);//判断完前面没有比自己大的元素之后在加入此元素 } int front(){ return qe.front();//由于队列降序排列则直接返回队头即可 } }; public: vectorint maxSlidingWindow(vectorint nums, int k) { MyQueue qe; vectorint result; for(int i0;ik;i){ qe.push(nums[i]); } result.push_back(qe.front()); for(int i k;inums.size();i){ qe.pop(nums[i-k]);//每次滑动时删除窗口最左边值 qe.push(nums[i]);//加上窗口新值 result.push_back(qe.front()); } return result; }347.前 K 个高频元素文章链接 完成情况看视频文章花费约45min本题使用了哈希表map用来存放数字以及出现频率然后使用小顶堆进行前k个高频元素存放思路遍历数组mp[数字]达到记录数字及其出现频率的作用然后遍历mp元素依次进入堆(优先级队列)中当堆元素超过k时就弹出一次(需要弹出最小值所以用小顶堆)最后将堆元素倒序放入数组result中注意事项-堆定义class mycomparison{ public: bool operator()(const pairint,int l,const pairint,int r){ return l.secondr.second;//如果左大于右返回true 该方式实现的是小顶堆 } } priority_queuepairint,int,vectorpairint,int,mycomparison pri_que; //中第一个数元素类型第二个是以什么容器存放元素一般默认就是vector固定写法最后是比较方法实现大顶堆还是小顶堆依据pair的第一还是第二部分排序class Solution { public: class mycomparison{ public: bool operator()(const pairint,int l,const pairint,int r){ return l.secondr.second; } }; vectorint topKFrequent(vectorint nums, int k) { unordered_mapint,int myMap; for(int i:nums) myMap[i]; priority_queuepairint,int,vectorpairint,int,mycomparison pri_que; for(auto pr:myMap){ pri_que.push(pr); if(pri_que.size()k) pri_que.pop(); } vectorint result(k); for(int i k-1;i0;i--){ result[i] pri_que.top().first; pri_que.pop(); } return result; } };总结栈和队可以互相实现栈很适合解决匹配问题比如左右运算符、相邻元素相同删除、逆波兰运算问题双向队列的前后获取、push和弹出很适合解决滑动窗口维护最大值的问题堆(优先级队列)适合解决对无序数据取k个最值的问题。
RELATED

相关推荐

推荐系统特征工程管线的自动化:从手写 SQL 到 Feature Store 的工程演进与一致性保障

推荐系统特征工程管线的自动化:从手写 SQL 到 Feature Store 的工程演进与一致性保障

推荐系统特征工程管线的自动化:从手写 SQL 到 Feature Store 的工程演进与一致性保障 一、特征工程的工程债务:为什么 80% 的特征查询延迟来自特征拼接而非模型推理 推荐系统的端到端延迟中,特征拼接(Feature Joining&#xff0…

📅 2026/9/1 8:18:01
Redis的string类及基础指令

Redis的string类及基础指令

Redis的string类及基础指令 数据结构和内部编码 string 1️⃣字符串数据类型2️⃣内部编码编码说明int存储64位(8个字节)有符号整数时使用embstr短字符串专用,内存分配效率更高raw长字符串使用的基础动态字符串 这些内部编码,会随…

📅 2026/9/5 3:11:35
广告 CTR 预估模型的 GPU 推理优化:大规模稀疏特征 Embedding 的显存管理与混合精度计算

广告 CTR 预估模型的 GPU 推理优化:大规模稀疏特征 Embedding 的显存管理与混合精度计算

广告 CTR 预估模型的 GPU 推理优化:大规模稀疏特征 Embedding 的显存管理与混合精度计算 一、CTR 模型的特征爆炸:当 100 亿参数中 99% 是 Embedding Table CTR 预估模型的架构特性与其他深度学习模型完全不同。一个典型的 Wide&Deep 或 DLRM 模型&a…

📅 2026/9/4 8:40:12
MORE NEWS

更多资讯

📰

LobeHub 配置 OPENAI_PROXY_URL 后返回空白消息怎么排查?

LobeHub 配置 OPENAI_PROXY_URL 后返回空白消息怎么排查? 【免费下载链接】lobehub 🤯 LobeHub is your Chief Agent Operator, organizing your agents into 724 operations by hiring, scheduling, and reporting on your entire AI team. 项目地址:…

📰

AFFiNE 拉取最新 canary 后应用无法启动怎么排查?重跑依赖安装与 native 构建

AFFiNE 拉取最新 canary 后应用无法启动怎么排查?重跑依赖安装与 native 构建 【免费下载链接】AFFiNE There can be more than Notion and Miro. AFFiNE(pronounced [ə‘fain]) is a next-gen knowledge base that brings planning, sorting and creating all tog…

📰

AI“差不多先生”:幻觉、套壳与落地之殇

1. 在315与AWE的交叉点,我闻到了“差不多”的味道 3月刚过,两个节点撞在了一起:一边是315,消费者权益日,各路消费维权、品质监督的声音集中爆发;另一边是AWE,中国家电及消费电子博览会&#xff…

📰

SNMP测试工具全解析:从协议基础到排障实战

简介:面向网络管理员与运维人员的SNMP测试工具包,集成Paessler SNMP Tester核心程序及动态库,可对路由器、交换机、服务器等设备执行协议连通性检查、MIB对象读取/写入、Trap消息模拟与性能数据采集,适用于日常故障排查、配置验证…

📰

HBase迁移方案设计:跨版本升级、跨集群迁移与数据校验

HBase迁移概述 HBase作为Hadoop生态系统中的NoSQL数据库,广泛应用于大数据存储场景。随着业务发展和需求变化,HBase迁移成为运维工作中常见挑战。迁移场景主要包括版本升级、集群迁移和架构调整等。合理的迁移方案设计不仅能保证数据安全,还能…

📰

用 `CD_DEPLOY_ENABLED` 变量为 PostHog 生产构建与部署工作流加闸门(Gating)

用 CD_DEPLOY_ENABLED 变量为 PostHog 生产构建与部署工作流加闸门(Gating) 【免费下载链接】posthog :hedgehog: PostHog is the leading platform for building self-driving products. Our developer tools – AI observability, analytics, session …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬