算法-系统整理
文章平均质量分 90
按各个知识点系统的进行总结
Marry Andy
断剑重铸之日,即是归来之时
展开
-
数组题目总结 ---- 田忌赛马
## 思路和代码:- 本质上就是两个队列给它排序,我方最大和敌方max打, - 打得过,就将我方max加入res当中; - 如果打不过,就让我方min打地方的max,将我方min放入res当中。原创 2023-09-18 22:18:41 · 197 阅读 · 0 评论 -
数组题目总结 -- 滑动窗口算法延伸:字符串匹配算法(KMP,Rabin-Karp )
一. 重复的DNA序列思路和代码:I. 博主的做法II. 东哥的做法法一:hash 暴力法法二:hash + 滑动窗口二. Rabin-Karp 算法三. KMP 算法原创 2023-07-26 14:46:47 · 358 阅读 · 0 评论 -
数组题目总结 -- 滑动窗口算法
零. 模板一. 最小覆盖子串思路和代码:I. 博主的做法II. 东哥的做法二. 字符串的排列思路和代码:I. 博主的做法II. 东哥的做法三. 找到字符串中所有字母异位词思路和代码:I. 博主的做法II. 东哥的做法四. 最长无重复子串思路和代码:I. 博主的做法II. 东哥的做法原创 2023-07-24 21:48:33 · 209 阅读 · 0 评论 -
数组题目总结 -- 单调栈问题
零. 单调栈一. Next Greater Element(单调栈问题模板)题目简述:思路和代码:I. 思路II. 代码二. Next Warmer Weather题目简述:思路和代码:I. 思路II. 代码三. Next Greater Elements(循环数组)题目简述:思路和代码:I. 思路II. 代码四. 不同字符的最小子序列思路和代码:I. 博主的做法II. 东哥的做法五. 去除重复字母思路和代码:原创 2023-06-14 21:05:05 · 388 阅读 · 0 评论 -
数组题目总结 -- 随机数问题
一. O(1) 时间插入、删除和获取随机元素思路和代码:I. 博主的做法II. 东哥的做法III. 其他做法二. 黑名单中的随机数思路和代码:I. 博主的做法II. 东哥的做法原创 2023-06-06 18:23:29 · 519 阅读 · 0 评论 -
数组题目总结 -- 花式遍历
一. 反转字符串中的单词思路和代码:I. 博主的做法II. 东哥的做法III. 其他做法1IV. 其他做法2二. 旋转图像思路和代码:I. 博主的做法II. 东哥的做法三. 旋转图像(逆时针旋转90°)思路和代码:I. 博主和东哥的做法四. 矩阵的螺旋遍历思路和代码:I. 博主的做法II. 东哥的做法五. 构建螺旋矩阵思路和代码:I. 博主的做法II. 东哥的做法原创 2023-05-24 22:10:25 · 796 阅读 · 1 评论 -
数组题目总结 -- 差分数组
只要花费O(1)的时间修改 diff 数组,就相当于给 nums 的整个区间做了修改。多次修改 diff,然后通过 diff 数组反推,即可得到 nums 修改后的结果。差分数组的主要适用场景是频繁对原始数组的某个区间的元素进行增减。前缀和主要适用的场景是原始数组不会被修改的情况下,频繁查询某个区间的累加和。这里犯了个小错误:diff[updates[i][1] + 1],没有 + 1,导致结果的错误。东哥这个做法更像是工程的做法,将差分数组封装成一个类,然后new 对象进行操作,值得学习。原创 2023-04-24 11:45:31 · 571 阅读 · 0 评论 -
数组题目总结 -- 前缀和数组
博主本来想让 preSum[0] 来存储 sum 的值,最后发现结果不对,因为 preSum[0] 这个值也要参与到求和的运算当中。eg:求下标 0 ~ 下标 5 之间元素的和,那么就是 preSum[5 + 1] - preSum[0]。博主的那个方法,虽然是前缀数组的衍生,但sumRegion时间复杂度为O(n),而东哥的这个时间复杂度为O(1)。很巧妙,运用迭代的思想构建preMartix数组,又运送矩阵相减的方法,算出sum,东哥牛逼!!!!原创 2023-04-22 16:10:27 · 564 阅读 · 0 评论 -
数组题目总结 -- 双指针
目录① 快慢指针:一. 删除有序数组中的重复项1. 思路和代码I. 博主的做法:II. 东哥的做法:2. 总结二. 删除排序链表中的重复元素(扩展)1. 思路和代码I. 博主的做法:II. 东哥的做法:2. 总结三. 移除元素1. 思路和代码I. 博主的做法:II. 东哥的做法:2. 总结四. 移动零1. 思路和代码I. 博主的做法:II. 东哥的做法:2. 总结② 左右指针一. 二分查找1. 思路和代码二. 两数之和 II - 输入有序数组1. 思路和代原创 2023-04-18 16:06:21 · 630 阅读 · 1 评论 -
链表题目总结 -- 回文链表
一. 从中心开始找最大的回文字符串1. 思路简述2. 代码3. 总结二. 判断是否为回文字符串1. 思路简述2. 代码3.总结三. 判断是否是回文链表1. 思路简述2. 代码3. 总结4. 优化解法原创 2023-02-15 21:20:09 · 582 阅读 · 3 评论 -
链表题目总结 -- 迭代
时间复杂度:o(n)空间复杂度:o(1),比递归要省空间,递归需要栈。把循环里的步骤分块理解,会好很多。hard类型的题,确实比较绕,不过拆开来看还可以。一定要注意那个区间左闭右开,不管是for循环,还是递归的里面的形参都要注意。原创 2023-02-14 16:08:28 · 321 阅读 · 1 评论 -
链表题目总结 -- 递归
一. 递归反转整个链表1. 思路简述2. 代码3. 总结二. 反转链表前 N 个节点1. 思路简述2. 代码3. 总结三、反转链表的一部分1. 思路简述2. 代码3.总结四、反转链表后N个节点1. 思路简述2. 代码3.总结原创 2023-02-13 22:34:44 · 336 阅读 · 0 评论 -
链表题目总结 -- 双指针技巧
一. 合并两个有序链表1. 思路简述2. 代码3. 总结二. 分隔链表1. 思路简述2. 代码3. 总结三. 合并K个升序链表1. 思路简述2. 代码3. 总结四. 单链表的倒数第 k 个节点1. 思路简述2. 代码3. 总结五. 链表的中间结点1. 思路简述2. 代码3. 总结六. 环形链表(链表是否有环)1. 思路简述2. 代码3. 总结七. 环形链表 II(如何计算环的起点)1. 思路简述2. 代码3. 总结八. 相交链表(求两个链表相交的起始点原创 2023-01-12 00:10:10 · 565 阅读 · 0 评论