代码随想录算法训练营第十天|150.逆波兰表达式求值,239.滑动窗口最大值,347.前K个高频元素

发布时间:2026/8/19 8:37:53

代码随想录算法训练营第十天|150.逆波兰表达式求值,239.滑动窗口最大值,347.前K个高频元素
150.逆波兰表达式求值看到题目的第一想法后序遍历嘛这很快就让我想到上一题也是找到特定的元素然后对栈进弹出只不过这次是弹出两个组装一下再加进去看完代码随想录的第一想法跟我想的也差不多确实是跟上一题差不多就是后序遍历这个概念需要去了解用自己的话描述遍历每一个字符遇到加减乘除就取数开始运算再返回结果入栈不断重复最后一个数就是结果代码classSolution{publicintevalRPN(String[]tokens){DequeIntegerstacknewLinkedList();for(Stringi:tokens){if(.equals(i)){stack.push(stack.pop()stack.pop());}elseif(-.equals(i)){intbstack.pop();intastack.pop();stack.push(a-b);}elseif(/.equals(i)){inttemp1stack.pop();inttemp2stack.pop();stack.push(temp2/temp1);}elseif(*.equals(i)){stack.push(stack.pop()*stack.pop());}else{stack.push(Integer.valueOf(i));}}returnstack.pop();}}实现过程中遇到哪些困难无今日收获记录一下自己的学习时长继续熟悉Deque stack new LinkedList();类型转换Integer.valueOf(x);12.00-12.23239.滑动窗口最大值看到题目的第一想法滑动窗口我看到就想着双指针但是一点思路都没有看完代码随想录的第一想法原来要构造队列这个内容我想不明白用自己的话描述就是先构造一个队列然后用这个特殊队列进行向右的移动即可所谓的向右移动就是遍历这个数组代码classSolution{publicint[]maxSlidingWindow(int[]nums,intk){MyQueuemyQueuenewMyQueue();for(inti0;ik;i){myQueue.add(nums[i]);}intlennums.length-k1;int[]resnewint[len];intnum0;res[num]myQueue.peek();num;for(intik;inums.length;i){myQueue.poll(nums[i-k]);myQueue.add(nums[i]);res[num]myQueue.peek();}returnres;}}classMyQueue{DequeIntegerdequenewLinkedList();//移除队尾所有小于等于当前值的元素保持单调递减voidadd(intval){while(!deque.isEmpty()valdeque.getLast()){deque.removeLast();}deque.add(val);}//弹出元素时比较当前弹出的元素是否是队首元素voidpoll(intval){if(!deque.isEmpty()deque.peek()val){deque.poll();}}intpeek(){returndeque.peek();}}实现过程中遇到哪些困难自定义队列这个做法也是前所未有于是总体觉得很难今日收获记录一下自己的学习时长学习了自定义队列的做法12.40-14.17347.前K个高频元素看到题目的第一想法找出现多的数我的想法就是将数组的数字转换成Map中的key每出现一次这个数其value就加1这样就是能解决了想不到其他方法了看完代码随想录的第一想法按我的想法随便进行排序就好了但是这个题目中代码随想录使用了堆这个数据结构可以做到不需要排序维护前k个元素即可这种想法是在这个数据结构出现之前前所未有的用自己的话描述找出现多的数我的想法就是将数组的数字转换成Map中的key每出现一次这个数其value就加1然后将这些Map先放入大小为k的小顶堆中之后的Map.value只有比堆顶大才能进入堆中最小的堆顶弹出不断这样做直到获得前k个最大的元素然后每次都取堆顶出来等于每次都取这个堆的最小值倒序遍历出来获得一个从大到小的数组代码classSolution{publicint[]topKFrequent(int[]nums,intk){// 统计频率MapInteger,IntegermapnewHashMap();for(intnum:nums){map.put(num,map.getOrDefault(num,0)1);}// 小顶堆维护前k个高频元素PriorityQueueint[]pqnewPriorityQueue((pair1,pair2)-pair1[1]-pair2[1]);for(Map.EntryInteger,Integerentry:map.entrySet()){if(pq.size()k){pq.add(newint[]{entry.getKey(),entry.getValue()});}else{if(entry.getValue()pq.peek()[1]){pq.poll();pq.add(newint[]{entry.getKey(),entry.getValue()});}}}// 取出结果int[]resnewint[k];for(intik-1;i0;i--){res[i]pq.poll()[0];}returnres;}}实现过程中遇到哪些困难说实话好久没接触堆了忘记堆的特性和其用法其Java的语法更是没有接触过今天学起来还真有点棘手今日收获记录一下自己的学习时长重温了一下堆的特性和其用法14.30-16.35

相关新闻

3步解锁微信平板模式,同一账号手机平板同时登录:WeChatPad 实战指南

3步解锁微信平板模式,同一账号手机平板同时登录:WeChatPad 实战指南

2026/8/19 8:27:53

3步解锁微信平板模式,同一账号手机平板同时登录:WeChatPad 实战指南 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 深夜加班回家,手机只剩 8% 电量,你窝进沙发…

我用三年时间沉淀的后端技术栈学习路线图

我用三年时间沉淀的后端技术栈学习路线图

2026/8/19 8:27:53

第一阶段,我先声明一个反直觉的事实:后端学习路线图不是地图,而是你自己踩出来的脚印合集。网上流传的各种“三个月精通后端”“一份路线图从入门到架构师”,大概率是培训机构用来制造焦虑的鱼饵。我花了三年时间,从写…

基于多源数据融合的老年人健康监测与预警小程序设计与实现(源码+lw+部署文档+讲解等)

基于多源数据融合的老年人健康监测与预警小程序设计与实现(源码+lw+部署文档+讲解等)

2026/8/19 8:27:53

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

凌晨一点的刷本噩梦,一页 Python 脚本就能终结:认识 FGO-Automata

凌晨一点的刷本噩梦,一页 Python 脚本就能终结:认识 FGO-Automata

2026/8/19 9:37:56

凌晨一点的刷本噩梦,一页 Python 脚本就能终结:认识 FGO-Automata 【免费下载链接】FGO-Automata 一个FGO脚本和API フェイトグランドオーダー自動化 项目地址: https://gitcode.com/gh_mirrors/fg/FGO-Automata 凌晨一点半,屏幕里的…

iFakeLocation 使用教程:不越狱给 iPhone 换定位,3 分钟上手的完整避坑清单

iFakeLocation 使用教程:不越狱给 iPhone 换定位,3 分钟上手的完整避坑清单

2026/8/19 9:37:56

iFakeLocation 使用教程:不越狱给 iPhone 换定位,3 分钟上手的完整避坑清单 【免费下载链接】iFakeLocation Simulate locations on iOS devices on Windows, Mac and Ubuntu. 项目地址: https://gitcode.com/gh_mirrors/if/iFakeLocation 测试用…

基于Yosys与APIO的开源FPGA工具链实战:从环境搭建到项目优化

基于Yosys与APIO的开源FPGA工具链实战:从环境搭建到项目优化

2026/8/19 9:37:56

1. 项目概述:为什么开源FPGA工具链值得你投入时间如果你接触过FPGA开发,大概率对Vivado、Quartus这些名字不陌生。它们功能强大,但同时也意味着高昂的授权费用、动辄几十GB的安装体积,以及相对封闭的生态系统。对于学习者、开源硬…

Sunshine 游戏串流应用管理快速上手指南:手把手配置你的第一个可串流游戏

Sunshine 游戏串流应用管理快速上手指南:手把手配置你的第一个可串流游戏

2026/8/19 9:37:56

Sunshine 游戏串流应用管理快速上手指南:手把手配置你的第一个可串流游戏 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 刚把 Sunshine 装好、兴冲冲地在 Moonlight 里…

基于Arduino与树莓派的风力发电机智能监控系统DIY指南

基于Arduino与树莓派的风力发电机智能监控系统DIY指南

2026/8/19 9:37:56

1. 项目缘起:为什么需要自己动手监控风力发电机?如果你在自家后院、农场或者一个偏远的实验场地架设了一台小型风力发电机,你可能会遇到一个很实际的问题:我怎么知道它现在转得怎么样?它今天发了多少电?叶片…

VS Code配CodeWhisperer踩坑实录:从报错到流畅补全的5个关键设置

VS Code配CodeWhisperer踩坑实录:从报错到流畅补全的5个关键设置

2026/8/19 9:27:55

VS Code配CodeWhisperer踩坑实录:从报错到流畅补全的5个关键设置 AWS深度学习开发实战:从CodeWhisperer集成到生产环境部署的完整指南 上周五准备发版前,团队突然要求所有AI辅助代码必须通过AWS认证。这个看似简单的合规要求,让我在深度学习基础项目上卡了整整两天。本文将详细…

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

2026/8/19 3:36:59

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

【双层规划,节点出清价,绿证交易,CVaR方法】两级电力市场环境下计及风险的省间交易商最优购电模型附Matlab代码

2026/8/19 9:17:18

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

隐式mpc+自适应mpc+时变mpc,线性时变模型预测控制附Simulink仿真

2026/8/19 8:02:16

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

SQL 调优 [ 2 ]

SQL 调优 [ 2 ]

2026/8/19 0:07:32

type列详解EXPLAIN输出的type列描述了表是如何连接的,性能从最好到最差的排序如下:systemconsteq_refreffulltextref_or_nullindex_mergeunique_subqueryindex_subqueryrangeindexALL接下来我们对 type列 做详细讲解。我们都知道,想要评估一条…

正式评优怎么选投票工具?人人微投票审计级防刷能力实测

正式评优怎么选投票工具?人人微投票审计级防刷能力实测

2026/8/19 0:07:32

在线上投票工具遍地开花的今天,选择一个合适的平台,本质上是在做一道关于场景与需求的匹配题。人人微投票是一个很典型的案例——它的产品逻辑、技术架构和商业模式,都围绕着“正式评选”这个细分场景深度扎根,也因此形成了自己鲜…

15 天 3 连发:DeepSeek 的「机枪」节奏,到底在下什么棋?

15 天 3 连发:DeepSeek 的「机枪」节奏,到底在下什么棋?

2026/8/19 0:07:32

15 天 3 连发:DeepSeek 的「机枪」节奏,到底在下什么棋?回看 2026 年 8 月这半个月,DeepSeek 的动作密度堪称疯狂:月初端出便宜快速的 V4-Flash,8 月 13 日同一天甩出 V4-Pro 正式版 开源 Harness 框架&am…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/17 12:00:53

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/15 10:10:27

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/18 12:20:24

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…