- 博客(9)
- 收藏
- 关注
原创 Day11 20. 有效的括号● 1047. 删除字符串中的所有相邻重复项● 150. 逆波兰表达式求值
栈顶不是一样的就把新的push进去,一样的就先把栈顶弹出来,再把新的push进去。最后把展内的元素全部取出,反转。有效的括号:假如是左手的就push进去, 假如栈不为空遇到了对应的右手就把栈里的左手弹出。150. 数数字就push进去, 是运算符就弹出前两个元素进行运算,把结果push进栈。
2023-07-08 21:57:54
115
1
原创 Day8 ● 344.反转字符串● 541. 反转字符串II● 剑指Offer 05.替换空格● 151.翻转字符串里的单词● 剑指Offer58-II.左旋转字符串
151类似,但还是O(n)的额外空间,想到了可能的O(1)方法, 先移除额外的space,然后反转,然后反转每个词,最后返回char[]的起始到终止位置(len- extra space);05要后续加强理解双指针。344,541没什么。
2023-07-06 15:32:20
101
1
原创 Day7 ● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和
统计第一个和第二个数组的和,map储存出现次数, 然后第三第四个数组元素的和 的负数假如存在于map中就可以get到有几个,就可以统计到一共多少种组合。15,18 3指针做的, 左右指针+排序,注意跳过重复的元素。454主要还是有2数相加的概念。383用掉一个字母就去掉一个字母。
2023-07-04 01:36:16
87
原创 Day4 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和
Easy, 都是用map去统计重复出现的元素。可以在注意下hash的getOrDefault的方法,写的快一点。心得:hashmap可以有一个unique的效果,然后也可以储存重复的元素、内容。
2023-07-04 01:32:04
54
原创 Day4 ● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II
链表相交:当两个指针没有相交的时候,假如A为空了就去B的head, vice versa。最后假如相交指针位置就是相交位置。环形链表:当两个指针相遇的时候,快指针变慢,慢指针去头结点,相遇的时候就是入环点。主要是头两道模拟的过程。19注意下头结点 快慢指针。链表相交和环形链表主要是记过程。
2023-07-04 01:25:27
66
原创 day3 203.移除链表元素 ● 707.设计链表 ● 206.反转链表
会循环到最后一个node。假如是while(curr.next!=null)会循环到倒数第一个node'。
2023-06-30 21:51:28
111
原创 代码随想录训练营第二天|977.有序数组的平方,209.长度最小的子数组 ,59.螺旋矩阵II
第二个思路:要求O(n)的时间复杂度,采用双指针,一个在头部一个在尾部,因为数组是有序的从小到大,所以只需要比较头部平方和尾部平方的大小,大的放在新的容器里的尾部。出现的问题,一开始想到了头尾指针,但是没有考虑这道题可以用额外的储存空间来放结果,导致想了很久。右指针不断地添加nums中的值到sum中,假如sum的值大于等于target了,就需要移动左指针了,不断的缩小左指针。放在新的容器后,要注意,放头的话头指针动,放尾的话尾指针动。注意指针,思考4个步,左到右,右到下,右到左,左到上。
2023-06-29 22:52:28
170
1
原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
左右指针的更新, 首先大致的更新思路是正确的, 假如mid小于target,证明target在右边。二分查找以前就练习过了, 很经典,3个指针左右中,中指针找target, 假如左指针大于或者等于右指针则代表target不在数组里。遇到的问题:for循环忘记要是数组长度减去出现过的目标值的次数了, 这导致遇到连续的目标值时会丢失移动过来的目标值。左指针,右指针的初始化,中间指针的更新计算,停止的条件是什么?快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组。慢的指针的值就是快的指针的值。
2023-06-28 10:33:55
525
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人