摘要: 一、分类 深度搜索:不断的搜索或计算子问题,直到某个分支结束,再回溯到上一个子问题,用途广泛 递归的实现就是一种深度搜索。 用的是栈的结构 广度搜索: 每次搜索下一个阶段的所有选项,都结束后 再来下一个阶段 用于求最短路径之类的问题。 用的是队列的结构 二、二叉树前序 后序 中序遍历 这3种都属于深 阅读全文
posted @ 2020-03-11 22:13 蓝天随笔 阅读(461) 评论(0) 推荐(0)
摘要: 一、思想 贪心算法考虑的是眼前的利益,是局部最优解 ,并不能保证最终最优解 如果能从局部最优解 推断出 问题的解,才适用,适用场景较少 如经典的换钱币问题,有 1元 3元 4元的钱币 问给定N元 可以换最少的个钱币个数 局部最优的话 ,那每次当然换4元的钱币 这样才是最优的。但最终不是最优的 如6元 阅读全文
posted @ 2020-03-11 21:25 蓝天随笔 阅读(119) 评论(0) 推荐(0)
摘要: 一、思想 取某一维度的中间值 分成两半,每次只需要跟其他一半查找或计算 如:对于一个有序的数组 查找某个值 ,那二分可以直接对数组下标进行二分 输入: nums = [-1,0,3,5,9,12], target = 9 输出: 4 解释: 9 出现在 nums 中并且下标为 4 二、解题模式 常用 阅读全文
posted @ 2020-03-11 21:15 蓝天随笔 阅读(174) 评论(0) 推荐(0)
摘要: 一、一般使用场景 常用于多阶段决策问题 最优解问题 区别于贪心算法只考虑眼前的局部利益 动态规定求解的是整体的最优值 如:求A到B的最短路径 A出发可达 A1 A2 A3 A1 出发可达 B1 B2 A2 出发可达 B2 B3 .... 二、特点 最优子结构 : 最优解的问题可以由子问题的最优解转换 阅读全文
posted @ 2020-03-11 20:50 蓝天随笔 阅读(120) 评论(0) 推荐(0)