会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
zhi-bai-0212
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
3
4
下一页
2025年2月27日
25.K个一组翻转链表*****
摘要: 我的解法 还是k+1长度的队列,对末尾K个元素用递归的方式翻转,然后出队K个元素,保留末尾元素。缺点是对next的指向挺复杂的,调整了好几次,然后在内存方面不太好。 官方解法 明天复习时补,今天先摸了 知识点
阅读全文
posted @ 2025-02-27 18:49 知白0212
阅读(8)
评论(0)
推荐(0)
2025年2月26日
24.两两交换链表中的节点
摘要: 我的解法 一:三个指针,po1指向po2的前驱,po2和po3分别指向两个待交换节点,然后修改next。时间上很好,但是消耗内存很大。 二:新建一个链表,直接在后面追加节点。其实和上面的方法极其类似,但是在内存消耗方面小不少。实在没想明白为什么类似的代码会出现0.3MB的差距? 可能是因为法1的条件
阅读全文
posted @ 2025-02-26 18:59 知白0212
阅读(7)
评论(0)
推荐(0)
2025年2月25日
23.合并K个升序链表*****
摘要: 我的解法 偷了个懒,直接套用了21题的代码,把k个链表按序两两合并。 官方解法 法一:顺序合并。 法二:分治合并。题解链接分治法是一个很重要的方法,后续自己敲一遍分治法的代码。 法三:优先队列。主要是k个元素中选择最小一个的问题,通过优先队列来优化。(评论区有优化python代码,今晚来不及了,明天
阅读全文
posted @ 2025-02-25 20:29 知白0212
阅读(6)
评论(0)
推荐(0)
2025年2月24日
22.括号生成
摘要: 我的解法 第一时间想到的是17题,因此用的回溯算法。 终止条件是leftcnt=rightcnt=n,即左右括号都有n个。中间需要判断一下用左括号还是右括号,只能追加左括号的情况是leftcnt=rightcnt,只能追加右括号的情况是leftcnt=n,其余情况两个都可以追加。 官方解法 法一:暴
阅读全文
posted @ 2025-02-24 09:35 知白0212
阅读(10)
评论(0)
推荐(0)
2025年2月23日
21.合并两个有序链表
摘要: 我的解法 两个指针分别指向两个链表,哪个的值小就把这个节点插入到结果链表的尾部,最后返回head。 官方解法 法一递归,把剩余未合并的链表传入当前函数,递归合并。 法二迭代(我的方法)。 知识点
阅读全文
posted @ 2025-02-23 18:16 知白0212
阅读(5)
评论(0)
推荐(0)
20.有效的括号
摘要: 我的解法 简单题,栈解决。注意在pop和输出结果时都要先判断一下栈是否为空。 官方解法 栈,不再赘述。 知识点 栈
阅读全文
posted @ 2025-02-23 17:59 知白0212
阅读(5)
评论(0)
推荐(0)
2025年2月22日
18.四数之和
摘要: 我的解法 同题15,先枚举a,再枚举b,然后双指针找出c和d。 官方解法 不再赘述。 知识点
阅读全文
posted @ 2025-02-22 17:49 知白0212
阅读(9)
评论(0)
推荐(0)
2025年2月21日
17.电话号码的字母组合*****
摘要: 我的解法 定义一个mul函数,表示两个列表的乘法,然后令digits中的每个数字对应的列表相乘,得到结果。 官方解法 回溯算法,回溯部分的思路是:终止条件为index==len(digits),索引到了结尾,停止;对本层,确定字母集,然后对当前维护的字符串,末尾追加一个字符,再进行下一层的递归。 本
阅读全文
posted @ 2025-02-21 19:05 知白0212
阅读(17)
评论(0)
推荐(0)
16.最接近的三数之和
摘要: 我的解法 参考上一题的排序+双指针,注意给初始的diff设一个较大的值,否则可能因为符号原因导致找不到结果。 官方解法 同上。主要看了一下评论区的优化思路:一是考虑排序后,对于外层循环的i,最小的三数之和为num[i]+num[i+1]+num[i+2],如果这个数也比target大的话,就不需要进
阅读全文
posted @ 2025-02-21 18:14 知白0212
阅读(4)
评论(0)
推荐(0)
2025年2月20日
15.三数之和
摘要: 我的解法 先排序,然后固定num1,对剩余的部分求两数之和,最后对结果去重。 官方解法 先排序;第一重循环,循环a;内部使用双指针,因为a+b+c=0,因而在固定a的情况下,b+c是一个定值。对一个已经完成排序的数列,只需要从小到大遍历b,同时从大到小遍历c,即可找到全部的b和c的组合。 知识点
阅读全文
posted @ 2025-02-20 19:24 知白0212
阅读(4)
评论(0)
推荐(0)
上一页
1
2
3
4
下一页
公告