![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
代码随想录刷题
归类代码随想录刷题播客
neverland1001
这个作者很懒,什么都没留下…
展开
-
代码随想录打卡Day2|977, 209, 59 数组
刷题打卡原创 2023-05-12 00:07:42 · 92 阅读 · 1 评论 -
代码随想录打卡Day3|303, 707, 206 链表Part01
精髓仍然是双指针,暂时不要求自己掌握递归,递归的使用场景有限制。需要一个临时指针,中间变量temp保存cur的下一个节点。对N进行合法判断 N size - 1。初始化 cur = dummyHead.next。插入节点的时候,先更新下一条边,再更新上一条边。定义一个临时指针操作,该指针指向头节点。当前操作的永远是cur.next。终止条件:cur指向null。● 203.移除链表元素。4.第n个节点前插入节点。1.获取第N个节点的值。● 707.设计链表。● 206.反转链表。原创 2023-05-14 13:33:01 · 103 阅读 · 1 评论 -
代码随想录打卡Day6|242,349,202,1 哈希表
它是一个高性能,无序的集合,因此HashSet它并不能做排序操作,也不能包含任何重复的元素,Hashset 也不能像数组那样使用索引,所以在 HashSet 上你无法使用 for 循环,只能使用 foreach 进行迭代,HashSet 通常用在处理元素的唯一性上有着超高的性能。HashSet 是一个优化过的无序集合,提供对元素的高速查找和高性能的set集合操作,泛型,元素具有唯一性。哈希表最适合解决的场景:给定一个元素,判断是否在集合里出现过。● 242.有效的字母异位词。● 349. 两个数组的交集。原创 2023-05-16 00:08:21 · 104 阅读 · 0 评论 -
代码随想录打卡Day10|232, 225栈和队列(一)
使用一个队列实现栈:只能实现存和取两个操作其中一个时间复杂度为O(1)另一个为O(n);因为本题有 Pop 和 Top 两个读取操作,所以采取的模式是写入为 O(n),读取为 O(1);所谓实现栈和O(n)就是在入队或出队时循环前n-1个节点,从队首出队后立即再加入队排在队尾,即实现队反序。在push数据的时候,只要数据放进输入栈就好,但在pop的时候,操作就复杂一些,输出栈如果为空,就把进栈数据全部导入进来(注意是全部导入),再从出栈弹出数据,如果输出栈不为空,则直接从出栈弹出数据就可以了。原创 2023-05-20 12:44:08 · 84 阅读 · 1 评论 -
代码随想录Day11|20, 1047, 150 栈与队列(二)
在项目比较大的时候,由于参数多,全局变量等等,使用递归很容易判断不充分return的条件,非常容易无限递归(或者递归层级过深),造成栈溢出错误(这种问题还不好排查!递归的实现就是:每一次递归调用都会把函数的局部变量、参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,所以这就是递归为什么可以返回上一层位置的原因。所以就是用栈来存放,那么栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。1.遍历到左括号,将右括号入栈;原创 2023-05-21 17:12:03 · 62 阅读 · 1 评论