- 博客(11)
- 收藏
- 关注
原创 【力扣】61. 旋转链表
首先确定旋转次数:旋转次数大于链表大小的都要进行求余处理;旋转次数等于链表大小的约等于没转,直接咋来咋return;旋转次数小于链表大小的才是正常情况。然后找到转完的、新链表的头结点。这一点参考寻找倒数第k个结点,很容易理解。最后就是连接旧链表头尾,断开新链表头尾。
2024-07-21 14:10:15 156
原创 LCR 140. 训练计划 II
寻找倒数第k个结点,总体思路就是创建两个指针,两个指针之间的距离就是倒数的个数,就像游标卡尺一样,移动到链表最后面就找到倒数第k的结点了。
2024-07-21 14:05:05 124
原创 【力扣】合并有序链表
通过循环判断两个链表的值的大小来改变结点的指向,从而达到合并有序链表的目的。迭代法一定会漏下一个结点,最后需要判断是那条链表漏下了。代码先放这里,有空再说(其实我也不太会)
2024-07-20 16:30:55 125
原创 引用和值传递
传递对象,而是用值传递,那么会发生对象的拷贝。这时,即使传递的是子类对象,在函数内部处理的实际上是基类对象的副本。由于这种副本是基类类型,它会调用基类的成员函数,而不是子类的重写函数。这种行为违背了多态性的基本原则。playSound函数用到了引用,如果使用值传递的话就会运行基类Animal的makeSound虚函数,而不是对应的子类的makeSound重写函数。在C++中,如果你不用引用(
2024-06-26 17:12:20 150
原创 【力扣】15. 三数之和
本题最难的是对于各种情况的判断,还有遍历和判断后的处理是否越界,基本思路很好理解。(本来想练练排序的结果一个sort()就完事了hh)引用一下题解中大佬的思路,很清晰易懂(@
2024-03-04 12:28:52 407 1
原创 【力扣】二叉树的遍历
注意:此时node是叶子结点,是没有子节点的,node=node->right导致node为空节点,这时就会直接弹出栈顶节点,也就是该子节点的父节点,等到再次运行到node=node->right的时候,标记就会移动到右子节点,此时就完成了“左根右”。然后将栈1顶弹出并压入栈2,该节点的两个子节点压入栈1,以此类推,最后栈2按顺序依次弹出栈顶,这个顺序就是后序遍历的顺序。遍历规律:“根左右”。创建一个栈,先放入节点,弹出栈顶,然后根据先右后左的规律放入两个子节点,再弹出栈顶,直到栈为空。
2024-02-22 23:12:56 529 2
原创 【力扣】3. 无重复字符的最长子串
本题主要使用滑动窗口算法,定义左指针lp, 右指针rp,将字符串作为数组处理就好。滑动窗口主要由两个循环组成,若未满足条件则将右指针向右移,满足条件则左指针向右移。本题的条件为窗口中是否有重复的字符。本题哈希表仅作为数据存储的容器。
2023-12-02 09:16:10 9
原创 【力扣】1. 两数之和
两个元素x,y必然是一前一后出现的,如果存在符合条件的解,在遍历到x时,哈希表里没有符合的y,此时把x加入到了哈希表里,当遍历到y时,就可以在哈希表里找到对应的x了,所以只需要一次遍历。将数组元素加入哈希表,但在此之前应先对哈希表进行检查( find() ),否则会出现加入第一个元素后重新检查自己的情况,若 target 的值为数组第一个元素的值的两倍就尴尬了。(这个return {} 不加力扣会出错。先申请一个哈希表,然后遍历数组;
2023-11-21 17:36:29 19 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人