自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 代码随想录算法训练营第十三天|239. 滑动窗口最大值、347.前 K 个高频元素

思路:这道题目主要涉及到如下三块内容:要统计元素出现频率、对频率排序、找出前K个高频元素。首先统计元素出现的频率,这一类的问题可以使用map来进行统计。然后我们要用小顶堆对部分频率进行排序 ,因为要统计最大前k个元素,只有小顶堆每次将最小的元素弹出,最后小顶堆里积累的才是前k个最大元素。因为小顶堆先弹出的是最小的,所以倒序来输出到数组。思路:设计一个单调递减队列,出口元素为当前窗口最大值。保持如上规则,每次窗口移动的时候,只要问que.front()就可以返回当前窗口的最大值。

2024-03-04 17:06:06 357 1

原创 代码随想录算法训练营第十一天|20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

字符串遍历完之后,栈是空的,就说明全都匹配了。在匹配左括号的时候,右括号先入栈,就只需要比较当前元素和栈顶相不相等就可以了,比左括号先入栈代码实现要简单的很多!思路:由于栈结构的特殊性,非常适合做对称匹配类的题目。这题字符串里的括号不匹配有几种情况。

2024-03-02 17:22:29 364

原创 代码随想录算法训练营第十天|232.用栈实现队列、225. 用队列实现栈

思路:需要两个栈一个输入栈,一个输出栈,在push数据的时候,只要数据放进输入栈,但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入),再从出栈弹出数据,如果输出栈不为空,则直接从输出栈弹出数据就行了。最后如何判断队列为空呢?如果进栈和出栈都为空的话,说明模拟的队列为空了。思路:用两个队列que1和que2实现栈的功能,que2其实完全就是一个备份的作用,把que1最后面的元素以外的元素都备份到que2,然后弹出最后面的元素,再把其他元素从que2导回que1。

2024-03-01 16:37:57 356 1

原创 代码随想录算法训练营第八天|344.反转字符串、541. 反转字符串II、替换数字、151. 反转字符串中的单词、右旋字符串

学习了切片的用法和几个操作string的函数。

2024-02-29 16:54:47 356

原创 代码随想录算法训练营第六天|242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

思路:创建一个字典table、一个字典res,将nums1中的元素作为字典table的key(nums1中的元素可能有重复的,map中的key不能重复,如果重复,会把相同key的value覆盖,但因为题目要求输出结果是惟一的,所以不影响输出结果),然后遍历nums2,判断table中是否有与nums2中的元素相同的key, 如果字典里存在与nums2中的元素相同的key,则说明该数是nums1与nums2交集中的数,将该数加入集合,并将table中的键值对删除,最后将list(res)返回。

2024-02-28 14:23:01 359

原创 代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表

思路:首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为null。然后就要开始反转,先要把 cur->next 节点用temp指针保存一下,接下来要改变 cur->next 的指向,将cur->next 指向pre ,此时已经反转了第一个节点了。最后,当cur 指针指向了null,循环结束,链表也反转完毕了。思路:这题蛮简单的,移除操作,就让节点next指针直接指向下下一个节点就可以了,但因为单链表的特殊性,只能指向下一个节点,那么如果删除的是头结点又该怎么办呢?

2024-02-24 15:18:58 370

原创 代码随想录算法训练营第二天|977.有序数组平方根、209.长度最小的子数组、59.螺旋矩阵II

不要以为for里放一个while就以为是O(n^2), 主要是看每一个元素被操作的次数,每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被操作两次,所以时间复杂度是 2 × n 也就是O(n)。今天的题目前两道还是比较简单的,学会双指针和滑动窗口思路,很快就把代码写出来了,螺旋矩阵看了蛮久的,理清了思路,很快也写出来了。由外向内一圈一圈这么画下去,由外向内一圈一圈这么画下去,每画一条边都要坚持一致的左闭右开,或者左开右闭的原则,这样这一圈才能按照统一的规则画下来。

2024-02-22 19:55:46 327

原创 代码随想录算法训练营第一天|704.二分查找、27.移除元素

这些题目不是很难,以前断断续续刷过,但是放假太久,脑子生锈了,还是做了很久。今天不仅学习了二分法和双指针,还学习了用.md语法写博客,今天的博客写的很丑、很简陋,以后用熟练了会写的更好,加油!

2024-02-21 21:48:59 1005

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除