
算法
文章平均质量分 76
@qwer
这个作者很懒,什么都没留下…
展开
-
二分搜索详解
二分搜索详解一、形式:第一种(左闭右闭形式)[l,r],这种每次搜索区间为 [m+1,r] 或 [l,m-1]重点:当 l = r 时,区间为 [l, l],此时只有一个数,但仍要判断,因为二分搜索可能不存在这个值l = 0,r = v.size()-1;while(l <= r){ //终止条件 l = r + 1int m = (l + r)/2if(target == v[m]){...}else if(v[m] > target){ r = m-1;}e原创 2022-01-28 11:47:22 · 964 阅读 · 0 评论 -
根据先序中序建立二叉树和后序中序建立二叉树
解题思路: 二叉树的前序遍历:根左右;中序遍历:左根右 由前序遍历知道根节点之后,能在中序遍历上划分出左子树和右子树。分别对中序遍历的左右子树递归进行这一过程即可建树。图解:/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), r.原创 2022-01-22 14:10:36 · 603 阅读 · 1 评论 -
动态规划(DP)(LC)
文章目录一、动态规划打家劫舍等差数列划分最小路径求和一、动态规划“动态规划(Dynamic Programming, DP)在查找有很多重叠子问题的情况的最优解时有效。动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间 · · · · · · 动态规划只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。”动态规划和其它遍历算法(如深/广度优先搜索)都是将原问题拆原创 2022-01-04 20:20:36 · 1017 阅读 · 0 评论 -
bfs和dfs(LC)
文章目录一、dfs(深搜)岛屿最大面积省份数量一、dfs(深搜)深度优先搜索也可以用来检测环路:记录每个遍历过的节点的父节点,若一个节点被再次遍历且父节点不同,则说明有环。我们也可以用之后会讲到的拓扑排序判断是否有环路,若最后存在入度不为零的点,则说明有环。有时我们可能会需要对已经搜索过的节点进行标记,以防止在遍历时重复搜索某个节点,这种做法叫做状态记录或记忆化(memoization)。岛屿最大面积给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表原创 2021-12-22 16:09:59 · 534 阅读 · 0 评论