CodeTop高频题解法快速一览(持续更新到2025)

考察频率从高到低

题目解法时间复杂度频度
1.无重复字符的最长字串滑动窗口,HashO(n)695
2. 反转链表两种做法: 递归 or 递推O(n)594
3. LRU双向循环链表,HashO(1)564
4. 数组中的第K个最大元素partition + 三路排序(非必须)O(n)428
5. K 个一组翻转链表dummhead + (bg, ed, l, r) + 反转链表O(n)347
6. 三数之和排序,遍历,对撞指针O(n ^ 2)320
7.最大子数组和维护最小前缀值O(n)276
8.手撕快速排序要三路快排才能过,懒得学,先写个朴素partition版本上去O(logn)263
9.合并两个有序链表递归写法,很吊O(n)252
10.两数之和hash标存一下每个数出现过的下标O(n)252
11.最长回文子串中心扩展 or DP or 马拉车O(n^2)236
【有意思的题】12.搜索旋转排序数组两次二分 or 一次二分(逻辑复杂一点)O(logn) or O(2logn)231
13.二叉树的层序遍历BFSO(n)230
14.岛屿数量BFS or DFS or 并查集O(n)220
15.买卖股票的最佳时机维护1~n的最小值O(n)217
16.环形链表快慢指针O(n)215
17.有效的括号栈(用双向队列实现)O(n)215
18. 合并两个有序数组逆向双指针O(n) + 空间复杂度O(1)211

|42.寻找两个正序数组的中位数||O(log(n+m)|119|
|最小K个数|partition,跟数组中第k个最大元素一个做法|O(n)|8|

一些想法:
6. 三数之和 用到的对撞指针的原理,其实就是 搜索二维矩阵 II,每次都切割一行或一列,时间复杂度就是O(n+m)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值