leetcode
汤圆006
这个作者很懒,什么都没留下…
展开
-
回溯法的基本原理
LeetCode很多题目是基于回溯法进行实现的:全排列,子集,深度优先搜索,某些看似简单的回溯法其实有很多坑会踩到,二分法是看似简单的算法,其实也有很多的坑。重点掌握的题型:二维数组、字符串操作、各种集合类的题目、抽象建模类的题目、动态规划和回溯法属于提高的内容(有很多时候看缘分,不可强求)...原创 2019-10-29 22:28:37 · 925 阅读 · 0 评论 -
排序、双指针、二分算法、动态规划、hashmap
开始从简单题目开始刷起,典型的优化手段: 双指针(三数求和)、动态规划(求解一个数组的子集使得元素和最大,ans和sum,动态规划重点是保存前一步的最优结果)爬楼梯问题,使用斐波那契数列,在牛客网可用的recursio实现,在leetcode中显示超时求平方根,必须选取右中位值,且得考虑int得最大值,以right保障不会超出最大索引,否则边界出错。(right = mid - 1)保障相交...原创 2019-09-26 19:54:14 · 218 阅读 · 0 评论 -
回溯法、堆、优先队列、集合类Map、线段树
Leetcode中典型问题总结:1.有序数组的重复元素,删除操作:使用额外的空间存储每个数字的个数,new一个新的数组取代2.回溯法:全排列问题3.堆、优先队列:适用于某类优先级的操作4.括号的连续匹配数量:新建一个类,额外的空间,记录栈中的被匹配括号,随后进行统计。5.线段树:合并固定区间内的信息:比如区间和,最大值之类重点:“额外的空间换取速度”“新建类可以更好得存储中间信息”...原创 2019-10-08 17:06:52 · 154 阅读 · 0 评论