LeetCode之中级算法
黄焖鸡米饭啊
嗯。
展开
-
中级算法之数组和字符串
总结:中级算法中的数组和字符串问题中依然沿用了初级算法问题中的双指针法,例如题目1;并且加入了一些数组中动态规划的问题,例如题目4,题目5,题目6。 题目1:三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 例如, 给定数组 ...原创 2019-08-25 17:41:57 · 219 阅读 · 0 评论 -
中级算法之链表
总结:链表的中级算法实际上就是链表的基础操作的实际应用。题目1涉及到链表的遍历,节点的创建及添加;题目2涉及链表的遍历和链表节点的移位;题目3涉及到链表的遍历,当然题目3也可以使用快慢指针来解决问题,我们可以将链表1头尾相连成为环,之后用快慢指针遍历链表2,判断其有没有环,若有环则两链表相连,反之不相连。这种方法之后二刷的时候更新。 题目1:两数相加 给出两个 非空 的链表用来表示两个非负...原创 2019-08-22 19:52:40 · 138 阅读 · 0 评论 -
中级之回溯算法
总结:回溯算法实际上是一个类似枚举的搜索尝试过程,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,其特点就是走不通就退回再选另一条路走。在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一结点时,要先判断该结点是否包含问题的解,如果包含,就从该结点出发继续探索下去,如果该结点不包含问题的解,则...原创 2019-08-26 20:23:23 · 192 阅读 · 0 评论 -
中级算法之动态规划
总结:中级算法练习中的动态规划问题,相较于初级算法练习来讲,寻找转态转移方程的时候会相对来讲抽象一点。但是寻找转态转移方程的时候要把握两点:一,是由题目总问题去寻找子问题,例如题目1,题目中问能否到达最后一个位置,我们先将这个总问题进行转化为在这个数组中可以跳跃的最长距离是否大于数组的长度,这样我们的子问题就是去寻找截止到数组某个元素时可以跳跃的最长距离;例如题目3,题目问金额为amount时所...原创 2019-08-28 11:26:23 · 147 阅读 · 0 评论 -
中级算法之排序和搜索
总结:早某些问题的解决过程中,对问题中的数据进行排序之后会使问题变得简单,例如题目2,题目3,题目6,在涉及到排序的问题的时候,我认为还是不要轻易的自己去写排序函数,因为一来这样会比较耗费时间,二来自己选择的排序方法可能在面对不同数据量的排序时无法总是保持一个很高的效率,所以还是优先使用STL提供的sort函数。sort函数在数据量比较大的时候会采用快速排序,用递归来实现;在快排过程中一旦分段的...原创 2019-09-03 17:49:25 · 192 阅读 · 0 评论