代码随想录算法训练营第十三天|239、347

代码随想录-035期-算法训练营【博客笔记汇总表】 阅读详情

239:

代码随想录

第一道hard题,花了很久。

从题解里了解到用单调队列来做,但一开始我用了queue而不是deque,然后也没有完全理解一个关键点:

添加新元素时要从尾到头比较,并且从尾移除所有比新元素小的元素,这样才能保证除了队列头以外的部分也都是从大到小。

举例说明:[1,3,1,2,0,5],k=3。当初始窗口开始滑动的时候队列为 3,1 并且需要加入2,我一开始是用queue,只能与头(也就是3)作比较,2<3,于是2就在1没有被移除的情况下加入了,使得队列变成 3,1,2 ,这就导致当窗口再次移动至[1,2,0],队列里移除3之后,队列(1,2)的头变成了1,这时再用peek取最大值的话就会获得错误的答案。
所以加入2的正确方法是从尾开始先跟1比较,2>1,移除1,再跟3比较,2<3,加入2,这样就能保证队列中正确的排序。

还有一个重点则是结果数组的大小,我一开始是先用ArrayList储存结果,最后再遍历放入一个同大小的数组。但其实只要new一个大小为 nums.length - k + 1 的数组就可以了。这道题每个窗口都有一个最大值,所以只要算出窗口的数量就可以了。这里的1代表初始窗口,nums.length - k 代表的是滑动后得到的所有数组。

347:

代码随想录

看题解之前想到了用map来记录每个数字的出现频率。看过题解之后用priority queue实现代码的时候遇到了些困难。

因为对pq的操作不太熟,所以花了点时间看怎么定义pq的comparator,然后还学习了用Entry来遍历map的方法。

操作了解了之后跟着思路实现代码还是比较容易的。

代码随想录算法训练营 hot100 回溯算法 回溯算法理论基础状态:√状态:√类别:回溯难度:mid状态:√类别:回溯难度:mid状态:×类别:回溯难度:mid状态:√类别:回溯难度:mid状态:×类别:回溯难度:midleetcode链接:​​​​​​​​​​​​​​状态:×类别:回溯难度:midleetcode链接:​​​​​​​状态:×类别:回溯难度:midleetcode链接:​​​​​​​状态:√类别:回溯难度:midleetcode链接:​​​​​​​​​​​​​​状态:√类别:回溯难度:mid。 阅读详情

相关推荐

将赛灵思 SDK 工程移植到 Vitis 的分步指南

注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师。 以下为个人译文,仅供参考,如有疏漏之处,还请不吝赐教。 您是赛灵思软件开发套件 (SDK) 用户吗? 您是否正在计划将自己的工程移植到 Vitis 软件平台? 那么本篇工程移植分步指南将能祝您一臂之力。 从 2019.2 版开始,赛灵思 SDK 开发环境已统一整合到全功能一体化的 Vitis™ 统一软件平台中。 尊敬的 SDK 用户,您只需轻点几下鼠标即可体验这一功能丰富的工具! 马上开始将工程从赛灵思 S

weixin_45825101的博客 1706

代码随想录算法训练营第十三天 | 239、347

今日主题:队列,数据结构239. 滑动窗口最大值 (一刷至少需要理解思路笔记:关键是想清楚滑动窗口怎么维护,窗口内数字从大到小排序,如何进入和离开这个窗口347.前 K 个高频元素。

Adaliudh的博客 423

智能驾驶域控制器的“终极大考”:解析EOL测试的核心价值与技术实践

在智能驾驶技术高速发展的今天,域控制器(Domain Controller)作为车辆“大脑”的核心部件,承担着传感器数据处理、决策规划、执行控制等关键任务。然而,这个集成了数十个芯片、运行着数百万行代码的复杂系统,如何确保其出厂前的功能安全与性能稳定?答案就藏在被称为“生产线最后一道防线”的EOL(End of Line)测试中。

汽车电子软件领域知识分享 655

代码随想录算法训练营第十三天 | LeetCode 239、347

代码随想录刷题-day12

Bingjiaokong的博客 1731

代码随想录算法训练营第十三天【栈与队列】|239,347

具体操作:heappushheappop ->pop最小值,min-heap,留下的都是大的。

steph766的博客 1032

代码随想录算法训练营完结篇 ★★★

训练营笔记完结篇。

weixin_41725662的博客 2560

代码随想录算法训练营第十三天

一起练习二叉树相关的算法题目

岁岁安的博客 1366

Day63--总结--三周半!速通《代码随想录算法训练营》(附每日计划,思路与代码笔记,可以来跟练)

Day63--总结--三周半!速通《代码随想录算法训练营》(附每日计划,思路与代码笔记,可以来跟练)

m0_60740070的博客 2285

代码随想录算法训练营day21

今天是算法营的第21天,希望自己能够坚持下来!今日任务:● 669. 修剪二叉搜索树● 108. 将有序数组转换为二叉搜索树● 538. 把二叉搜索树转换为累加树二叉树终于结束了!二叉树的递归:1.确定递归函数的参数 2.确定终止条件 3.单层递归逻辑二叉树的遍历方式:前序遍历(中左右),中序遍历(左中右),后序遍历(左右中)二叉树的迭代法,前序和后序相似,使用栈来存放需要处理的节点;而中序的栈是存放指针访问的节点,向左访问到最底层,再弹出节点进行处理,再向右访问。

qq_38365428的博客 1938

代码随想录训练营第42期 打卡总结 - 刷题记录】

打卡总结

记得要努力变强 1606

代码随想录算法训练营day10

今天是算法营的第10天,不知不觉已经第10天了!希望自己能够坚持下来!今日任务:● 栈与队列的理论基础● 232.用栈实现队列● 225. 用队列实现栈● 20. 有效的括号●1047. 删除字符串中的所有相邻重复项今天主要是学习了:1.重新复习了一遍队列和栈的知识。2.才想起来string也可以像容器一样用empty(),push_back(),back()这种操作!(之前都没用过)明天继续加油!

qq_38365428的博客 821

代码随想录算法训练营day9

今天是算法营的第9天,希望自己能够坚持下来!今日任务:●151.翻转字符串里的单词●卡码网:55.右旋转字符串●28. 实现 strStr()●459.重复的子字符串●字符串总结●双指针回顾今天主要是学习了:1.字符串反转先整体反转后局部反转的解题思路2.kmp的初体验…有点晕QAQ还需要再多多做题加深理解明天继续加油!

qq_38365428的博客 781

代码随想录算法训练营Day2

前缀和:重复利用计算过的重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。在使用前缀和求解的时候,要特别注意求解区间。

lololo的博客 948

代码随想录算法训练营总结篇

总的来说,通过这些天的学习,我觉得收获许多!再到二叉树、回溯算法、贪心算法、动态规划、单调栈,我深刻地体会到了网上流行的一句话,“一根笔,一杯茶,一道leetcode做一天”,有的题自己思考一直都想不到,不妨看一下题解,不仅可以节省时间,还可以减少自己的痛苦,通过学习前辈的方法,看看能否内化。刷题不能只看数量,要看质量,我发现我之前做过的题目,第二次再做时又出现问题了,不能背答案,要自己理解,自己想明白,融会贯通,有的题目真的是换汤不换药,仅仅是应用场景改变,核心代码并没有改变。

dream_aleaf的博客 1644

代码随想录算法训练营第四十天

本文主要介绍了LeetCode中两道关于回文子串和回文子序列的题目:647. 回文子串和516. 最长回文子序列。对于647题,通过动态规划的方法,统计字符串中所有回文子串的数量,时间复杂度为O(n^2),空间复杂度为O(n^2)。对于516题,同样使用动态规划,找出字符串中最长的回文子序列长度,时间复杂度为O(n^2),空间复杂度为O(n^2)。文章还总结了动态规划在解决各类问题中的应用,包括斐波那契数列、背包问题、股票交易等,并提供了往期打卡的链接。

岁岁安的博客 1089

代码随想录算法训练营|一刷总结与反思

一刷代码随想录正式结束,之前没有系统的学习过,甚至没有刷过力扣题,第一次刷的题采用的先看卡哥的视频然后再试着自己敲一遍代码的方式,中间还有一些题目看完之后写代码也仍然有不少问题,就跟着代码随想录的“参考代码”敲了一遍。断断续续花了两个月,终于成功的完成了代码随想录的一刷。总共刷的内容有:数组、链表、哈希表、字符串、双指针法、栈与队列、二叉树、回溯算法、贪心算法、动态规划、单调栈。

weixin_47748259的博客 1506

代码随想录算法训练营30期——总结篇

卡哥题目编排顺序设置的很好,刚开始刷题的时候正反馈拉满,就觉得自己怎么这么nb啊这都给我做出来了(然后被贪心和动规暴打),有段时间甚至做题手痒一天刷了四五道把第二天的题都刷掉了。我自认为自己的自制力不算差(应该能超过六七成的人吧),但我确实不敢说我能一个人在60天内从0开始完成这么多的算法题,甚至寒假还在刷,甚至刷完还都写了博客。

Y_Vollerei的博客 1888

代码随想录算法训练营总结

代码训练营总结

qq_44849862的博客 751

数据库连接算法详解:从基础概念到嵌套循环优化

2.重复键在归并连接中的处理:排序归并连接遇到相同键时,需要保存或回溯同一键对应的记录组,然后输出笛卡尔积。(2)外连接:即使一方没有数据,也保留该侧数据,用NULL填充。对S中的键计算哈希值;(3)连接基数:连接结果的行数可能远大于任意一张输入表。设外表有R个页面,内表S个页面,比较次数O(R+R*S)5.哈希连接的限制:最适用于等值连接,不直接适用于比较。(1)build阶段:对较小的关系R建立哈希表。(1)内连接:只保留两张表之中能够匹配的内容。若R有M行,S有N行,则比较次数为O(MN)

jiangxiaohanya的博客 230

UC浏览器缓存加密视频文件破解合并工具(java工程).rar

1、资源是java文件,有java基础的人再下载!!!2、工具用于破解UC浏览器缓存或下载的Y2hlbmppbmdjb25n文件破解加密文件;3、若文件没有加密,可使用简单快捷视频合并工具:https://download.csdn.net/download/gongjin28_csdn/255129084、判断文件是否是加密文件,复制任意一个视频到桌面,双击,若不能播放就是加密文件;5、使用本工具注意事项:先看下是否有k0、key.key、key.0等key文件,若有,使用记事本开打,里面是16位字符,并且非乱码,则可以使用本工具进行破解合并。若没有,或有一个链接去在线获取key的这种类型视频使用本工具是合并不了的。这类视频常见于版权意识较强的的视频。6、声明:本工具使用仅作为个人学习使用,切勿做为商业目的使用。任何违法的个人行为与本工具无关。7、若资源使用有问题,可私信博主,看到即回复。

上一篇: 代码随想录算法训练营第十一天|20、1047、150
下一篇: 代码随想录算法训练营第十四天|144、145、94(二叉树的递归遍历,迭代遍历,统一迭代)
六月的奶德
博客等级 码龄3年 138粉丝 · 22原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值