首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
使用「力扣」学习算法与数据结构
liweiwei1419
创建于2021-05-26
订阅专栏
知识点和题解都会讲解。
等 2 人订阅
共34篇文章
创建于2021-05-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
「力扣」第 50 题:Pow(x, n)
「递归」就是「分治算法」,拆分问题与组合问题的解。怎么拆分比较重要。「非递归解法」有一点点脑洞,需要把指数看成二进制分解。
「力扣」第 38 题:外观数列(递归)
这题首先需要读懂题意,其实代码也不是很好写,我参考了很多很多代码,然后修改成现在这个样子。 这题看一下,把代码写对就好,不用深入研究。
「力扣」第 743 题:网络延迟时间(中等)
本题是一个标准的使用 Dijkstra 解决的图论问题,可以用于学习没有负权边的单源最短路径问题。注意:没有负权边是关键。
「力扣」第 1673 题:找出最具竞争力的子序列(栈)
从「示例」分析得到解决问题需要使用「栈」。分析出「后进先出」,所以用「栈」,只是恰好保持了「单调性」。「单调栈」就是普通的栈。
「力扣」第 493 题: 翻转对
这道题是计算「逆序数」升级问题,需要考虑清楚这里的一些细节。首先要搞懂归并排序,然后要知道如何计算逆序数。
「力扣」第 50 题:Pow(x, n)
这题我提供了「自顶向下」与「自顶向上」的解决办法。「自顶向下」是分治算法、递归实现。「自顶向上」借助了指数的二进制分解。
什么是「循环不变量」?
「循环不变量」就是 在循环的过程中保持不变的性质; 保持什么不变,是我们根据任务和目的而自行定义的,不同的循环不变量对应了不同的算法; 可以把循环不变量作为注释写在代码中,帮助理清代码的逻辑。
题解 | 「力扣」第 525 题:连续数组
连续子数组的性质想到通过前缀和,但是枚举前缀和需要平方级别的时间复杂度,在遍历得到前缀和的同时记住结果,可以使得时间复杂度降到线性时间复杂度。
题解 | 「力扣」第 929 题:独特的电子邮件地址
很简单的字符串处理问题,理解题意是关键。注意先分割,再做替换。最后还需要去重,所以把处理好的邮件放在哈希表中。
题解 |「力扣」第 1177 题:构建回文串检测
本题需要充分挖掘回文的性质,重点理解「重新排列」这个题目中的关键字,并且充分理解「异或」运算的特点。
题解 | 「力扣」第 962 题:最大宽度坡
把栈当作缓存,把暂时还不能确定结果的数据存入栈中,把已经可以确定结果的数据弹出栈。这是这一类问题可以使用栈的原因。其实真正的原因,可以认为是「恰恰好」。这种保持栈内元素单调的问题并不多,有一些绕。
题解 | 「力扣」第 173 题:二叉搜索树迭代器
首先需要理解迭代器是什么意思,迭代器是一个缓存,迭代器的底层是一个线性数据结构,迭代器有两个接口:是否有元素,和返回下一个元素。
题解 | 「力扣」第 560 题:和为 K 的子数组(中等)
前缀和与哈希表的问题一直很绕,感觉说不太清楚,最近会分享一些类似的问题,帮助大家巩固前缀和与哈希表的问题的解题思路。
题解 | 「力扣」第 639 题:解码方法 II(困难)
这道题其实和「力扣」第 90 题(解码方法 I)是一样的,就是多了通配符 * 使得分类讨论变得复杂起来。