- 博客(9)
- 收藏
- 关注
原创 代码随想录算法训练营第十一天|20.有效的括号、1047.删除字符串中的所有相邻重复项、150.逆波兰表达式求值
的数据结构实现,append左括号对应的右括号 b.注意pop前需要check结果集res中是否有元素。3.主要思路:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中。3)今日收获:通过栈这种数据结构实现相邻元素“消消乐”[1047]删除字符串中的所有相邻重复项。[150]逆波兰表达式求值。2.题目难度:Medium。2.题目难度:Easy。2.题目难度:Easy。
2023-07-24 19:59:56 45
原创 代码随想录算法训练营第十天|232.用栈实现队列、225.用队列实现栈
3.主要思路:a.一个队列实现栈,队列的长度是size的话,需要将前面size-1个元素逐个添加到尾部。元素,其实底层是pop出来最后一个进入out数组中的元素。3)今日收获:a.栈:先入后出, 队列:先入先出。d.pop函数在数组中的作用是删除数组中的。3.主要思路:a.两个栈实现一个队列 b.元素,和本题中的pop移除队列。[232]用栈实现队列。2.题目难度:Easy。[225]用队列实现栈。2.题目难度:Easy。
2023-07-21 18:12:41 62 1
原创 代码随想录算法训练营第八天|344.反转字符串、541.反转字符串II、剑指offer 05.替换空格、151.翻转字符串里的单词、剑指offer58-II.左旋转字符串
3.主要思路:a. 外层循环每次跨越2k个 b.如果长度大于字符串长度了,则把剩下的进行翻转 c.翻转字符串在python里面可以直接用[::-1]实现。3)今日收获:a. 541题中的跨越2k进行循环 b.数组可以对连续的多个位置进行一次性赋值 c.字符串-双指针翻转/ [::-1]翻转。3.主要思路:a.双指针, 一个从字符串的末尾开始遍历,一个从结果集末尾开始遍历 b.1.题目链接:。[151]翻转字符串里的单词。1.题目链接:。1.题目链接:。
2023-07-21 18:12:35 51 1
原创 代码随想录算法训练营第七天|454.四数相加II、383.赎金信、15.三数之和、18.四数之和
3.主要思路:a. 排序 b.剪枝 c.去重 d.等价于在三数之和外面多包了一层,[b/c]双层两次操作, 注意这里的target可以是负数/正数/0.然后计算并判断第二组的和的反数是否在第一组的dic结果中出现。3)今日收获:a.四数相加II将四个数组分成两组分别计算,第二组的判断就转化成了hash表能解决的问题(“3.主要思路:因为题目中提到所有的字母均为小写字母,解答方式同 [242]有效的字母异位词,见。3.主要思路:a. 排序 b.剪枝 c.去重 d.3.主要思路:a. 返回的是元组的个数 b.
2023-07-19 17:22:11 43
原创 代码随想录算法训练营第六天|242.有效的字母异位词、349.两个数组的交集、202.快乐数、1.两数之和
3)今日收获:a. 哈希表有三种方式:数组、set、dictionary b.当需要的存储容量较小的时候适合使用数组, 反之使用set,如果需要存储key&&value的信息则用dictionary c.3.主要思路:a.判断一个数字是否在一个列表里面,需要用到hash表,这里使用dictionary,因为需要返回数字所在的index (key-value) b.找到一个即可返回。3.主要思路:如果新一轮算出来的结果,历史也算出来过,说明进入循环了,则不是快乐数。2.题目难度:Easy。
2023-07-18 18:44:59 61 1
原创 代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表
注意:addAtIndex(index,val):在链表中的第 index 个节点之前添加值为 val 的节点。3.主要思路:a.使用dummy head让头节点的处理方式和其他节点一致 b.删除的时候只能删除cur.next,即让cur指向cur.next.next。3.主要思路:a. 在被操作节点的前一个节点的位置进行操作 b.链表的init包含dummy_head和链表的size。3.主要思路:a.使用cur、pre两个指针实现 b.注意返回的是pre,因为cur最后会指向null。
2023-07-17 19:51:51 46 1
原创 代码随想录算法训练营第四天|24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II
3)今日收获:a. 链表的操作(删除或者对链表进行改变时),需要引入虚拟头节点,保证head节点的操作和其他普通节点没有差异,如果是判断是否有环(不对链表进行实质的改变),则不需要dummy b.修改的过程中会引入temp的指针,但是赋值时用cur即可。3.主要思路:a.判断是否有环是slow和fast是否可以相交 b.判断环形链表的入口是:从head出发&&从交点出发,两者相遇的地方(证明如下截图)b.引入虚拟头节点dummy c.引入两个临时节点(temp1、temp2),方便进行指向转化 d.
2023-07-17 16:18:04 48 1
原创 代码随想录算法训练营第二天|977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II
(最后一个位置留给下一条边进行赋值) b.一个圈可以消除两行/两列,所以n*n的方形有 n//2个圈, 如果n%2==1,则有一个正中间的位置需要赋值 c.3.主要思路:根据y=x*x的函数图像,可以观察到是两边高中间低,所以x的排序数组的平方由大到小是从两端向中间靠拢的过程。3)今日收获:a.滑动窗口需要先固定终止位置j b.螺旋矩阵所有的边的赋值位置遵循一个规则。3.主要思路:a. 滑动窗口 b.实现滑动窗口需要。,所以遍历下一个j的值的时候,2.题目难度:Medium。2.题目难度:Medium。
2023-07-13 13:22:14 102 1
原创 代码随想录算法训练营第一天|704.二分查找、27.移除元素
3)今日收获:1. 二分查找:开闭区间决定循环条件及循环体内部临界情况是否有等于;数组中左右边界的二分查找搜索 2.数组的元素删除等价于元素的“覆盖”,底层需要通过覆盖的方式来实现删除。
2023-07-12 16:21:16 369 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人