自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

根据王道讲解,波兰表达式为前缀表达式,逆波兰表达式实际上就是后缀表达式,这两者的区别是运算符号前者会安置在表达式左侧即前缀,而后者会安置在右侧,即后缀。准备一个栈用来存储数字,对于一个给定的逆波兰表达式,对其进行遍历,遇到数字则进栈,遇到运算符则从栈中弹出两个数进行运算,先弹出的数为右操作数,将算出的结果入栈。我采用栈来处理这种问题,字符串首元素进栈,之后每个元素与栈顶元素作比较,相等则弹出栈顶元素,否则该元素进栈,遍历字符串完毕后,输出栈中所有元素。由于栈结构的特殊性,非常适合做对称匹配类的题目。

2024-03-27 20:20:42 488

原创 (待完善)代码随想录算法训练营第10天| 理论基础、232.用栈实现队列、225.用队列实现栈

栈和队列是STL(C++标准库)里面的两个数据结构。栈可以使用顺序表或者链表来实现,即顺序栈和链栈。这节其实比较简单,内容没有详细去写,以后会完善。答:只能对栈顶元素进行操作,不提供迭代器。今天较为简单,简单的栈和队列操作。学习时长: 1 h min。

2024-03-27 20:20:12 203

原创 (未完善)代码随想录算法训练营第九天| 28.实现strStr()、459.重复的子字符串、字符串总结、双指针回顾

2024-3-27学习了kmp,但是代码没能搞明白,原理是知道了,博客实际上没有写完,等以后会完善。

2024-03-27 20:18:54 337

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

由于每个单词之间需要存在一个空格,我们在快指针遍历时需要保留一个空格存入慢指针所指向位置,如果快指针指向空格,但是快指针前面的一个位置不为空格,说明这个空格是紧挨着单词的,我们将其保留,当快指针指向空格,并且其前面一个位置也为空格时,说明这个空格是多出来的,我们将其删除。学习时长: 2 Day 因为学校在搞生产实习,学习不了考研的东西,因此课上断断续续写点博客,效率属实低下,效果也不是很好,细水长流,慢慢磨了两天,才写完完整的一些内容,不过内容应该还算充实,有很多我个人的想法与理解。

2024-03-07 12:01:20 1043

原创 代码随想录算法训练营第七天| 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和、总结

454.四数相加II第454题.四数相加II学透哈希表,map使用有技巧!LeetCode:454.四数相加II目标:状态:想到了两个数组比较好处理,没想到把四个数组两两结合形成新的两个数组🤪2024/2/28由于学业繁忙,今后的博客会比较粗糙,只是记录一些自己的想法,后续有时间了会逐渐补充完善,更新频率也会降低,可能几天才会更新一篇,望谅解。

2024-02-28 22:46:34 491

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

当我们要使用集合来解决哈希问题的时候,优先使用unordered_set,因为它的查询和增删效率是最优的,如果需要集合是有序的,那么就用set,如果要求不仅有序还要有重复数据的话,那么就用multiset。采用链表的形式,哈希表的每个位置存储一个链表的头节点,将映射到同一位置的元素加入到其对应的链表中,当想要寻找目标元素时,首先定位到该元素所处的链表,然后需要遍历链表才能找出目标元素。中提到的,元素唯一,想到set和unordered_set,可以不考虑吧顺序,则选用unordered_set。

2024-02-27 00:46:54 659

原创 代码随想录算法训练营第四天-24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II 、总结

24. 两两交换链表中的节点24. 两两交换链表中的节点帮你把链表细节学清楚!| LeetCode:24. 两两交换链表中的节点目标:状态:独立使用虚拟头节点AC学完链表后至少需要熟悉一下几种常用的方法:双指针法:快慢指针、左右指针虚拟头节点一些常用的技巧2024/2/24后续会补充。

2024-02-24 22:26:43 853 1

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

需要注意,由于第一个节点涉及到了链表的头节点问题,需要单独进行一个判断,即如果头节点指向的位置的值为val,则直接操作头节点,然后再进行上述快慢指针操作。我的想法是声明一个空节点,让其指向头节点,声明一个指针遍历链表,将遍历的值存入空节点,并让其指向空节点的下一节点,空节点则指向这个节点。学过操作系统的话,可能会知道。循环以上过程,当cur指针为空时,说明链表反转完毕,此时pre指向链表的新的头节点,返回pre即可。,一般来说,头节点中不含有数据,它作为一个指示符指向链表中含有数据的第一个节点。

2024-02-24 00:02:13 928

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

977.有序数组的平方977.有序数组的平方977.有序数组的平方状态:暴力法能够解决,双指针法自己也想到了,思路和卡哥基本一致,学习一下卡哥的代码书写😸2024/2/22时间有点晚了,睡觉要紧,下次一定。

2024-02-22 23:59:48 859

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

因为平常也了解过一些简单的算法,加上学校上课提到的,二分查找的基本思想我是了解的,只需不断的将区间的中位数与目标值作比较,选择左右区间,直到找到目标值或数组越界。卡哥讲的很清楚,确实是让我理解了这个边界选择的方法,以前看acwing的视频没有理解为什么,只背了模板,结果时间长了模板忘了,题也做不对了。最终,当快指针遍历完数组时,慢指针指向其所表示新数组的最后一个元素的后一位,由于其值从0开始,因此慢指针的位置便是新数组的长度。,初始值为0,相当于指向一个空的、新的数组,不断的填入快指针找到的值。

2024-02-21 22:34:15 1697 1

空空如也

空空如也

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

TA关注的人

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