
力扣练习感悟
溯夜流云
这个作者很懒,什么都没留下…
展开
-
算法:回溯+剪枝
回溯算法的定义: 在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可以结束。 解空间树:依据待解决问题的特性,用树结构表示问题的解结构、用叶子表原创 2020-12-09 14:15:10 · 3958 阅读 · 0 评论 -
力扣解题 1014. 最佳观光组合 有感:
对于设计多层循环寻找多个数的和差,乘积,除数之类的最值问题: 可以设计一个local记录前几个数的最值,然后用少几层或者单层循环更新local和当前计算的最值,最终得到结果。 注意可以直接一起计算的放到一起,不要被题目迷惑,例如下题的A[i]+i ,A[j]-j 其实是两个整体 如果是暴力的话就是双层的循环了: class Solution { public: int maxScoreSightseeingPair(vector<int>& A)...原创 2020-12-08 22:57:36 · 152 阅读 · 0 评论 -
力扣出现概率最高的前一百道简单题总结
前景:力扣里所谓的简单题并不一定简单,很多的官方解题思路都是很巧妙的。 练题过程中涉及到的一些知识点: 基础的: STL相关的一系列操作:其中用的最多的就是vector和unordered_map ,stack偶尔也会用到,优先队列(priority_queue)也有用到过,还有一些对字符串string的操作(可以find,push_back等) 1.对数组和字符串的一些巧妙方法:例如反转左右部分再整体反转等等; 2.vector和map的结合使用:例如利用map中查找元素的时间复杂度为...原创 2020-11-27 18:01:17 · 467 阅读 · 0 评论 -
力扣练习感悟系列2:动态规划相关
1原创 2020-11-02 21:30:31 · 113 阅读 · 0 评论 -
力扣练习感悟系列1:深度遍历、深度优先搜索、DFS相关
1原创 2020-11-02 21:29:39 · 151 阅读 · 0 评论