![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Aaron~~~
这个作者很懒,什么都没留下…
展开
-
c动态规划精简例题
c动态规划精简例题1. 单序列型爬楼梯//1.爬楼梯int minCostClimbingStairs(int cost[], int n){ int dp[n]; dp[0] = cost[0]; dp[1] = cost[1]; for (int i = 2; i < n; i++) { dp[i] = min{dp[i - 1], dp[i - 2]} + cost[i]; } return min{dp[n原创 2020-11-23 17:23:48 · 145 阅读 · 1 评论 -
DFS和BFS典型例题
DFS和BFS典型例题1、DFSDFS模板:void dfs()//参数用来表示状态{ if(到达终止状态)//递归出口 { ...//根据题意来添加 return; } if(越界或者不合法状态) return; else { for(扩展方式) { if(扩展方式所达到的合法状态) {原创 2020-11-23 15:19:15 · 966 阅读 · 2 评论 -
动态规划(Dynamic Programming)
动态规划(Dynamic Programming)目的:是为解决多阶段决策过程的优化问题,即把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。动态规划思想将待求解问题分解成若干个不独立的子问题,求出子问题的解并记录在表中,当需要再次求解此子问题时,可以通过查表获得该子问题的解而不用再次求解,从而避免了大量的重复计算。最后结合这些子问题的解即可得到员问题的解。解题思路:分析问题的最优子结构性质:一个最优策略的子策略总是最优的建立递归关系自下而上计算最优值根据计算最优值时原创 2020-10-25 20:41:11 · 440 阅读 · 0 评论 -
贪心算法
贪心算法1、贪心选择性质指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。动态规划算法通常以自底向上的方式解各个子问题,而贪心算法通常以自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每作一次贪心选择就将所求问题简化为规模更小的子问题。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终导致问题的整体最优解。2、最优子结构性质和动态规划一样。...原创 2020-10-18 21:13:22 · 68 阅读 · 0 评论 -
回溯算法
回溯算法回溯法是一种以深度优先方式系统搜索问题解的算法,有“通用解题法”之称,可以系统地搜索一个问题地所有解或任一解,是一种既带有系统又带有跳跃性地搜索算法。基本思想在问题的解空间树中,按深度优先策略从根节点出发搜索解空间树算法搜索至解空间树的任一结点时,先判断该结点是否包含问题的解如果肯定不包含,则跳过以该结点为根的子树搜索,逐层向其祖先结点回溯否则,进入该子树,继续按深度优先策略搜索回溯法求问题的解时,要回溯到根,且根节点的所有子树都已经被搜索到才结束。问题的解空间用回溯法解原创 2020-09-20 10:19:39 · 593 阅读 · 0 评论 -
分治递归
一、递归分治这里的很多资料,都是我从网上看别人的博客,或者从书上摘录下来的,如有侵权,请联系我,立马删帖1.1 分治法分治法(Divid-and-Conquer):将问题划分为n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题,然后再合并其结果,就得到原问题地解。分治模式在每一层递归上都有三个步骤:分解(Divide):将原问题解成一系列子问题;解决(Conquer):递归地解决各个子问题。若子问题足够小,则直接求解。合并(Combine):将子问题的结果合并成原问题的解。原创 2020-09-20 10:17:38 · 738 阅读 · 0 评论