有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外每个数左下方和右下方各有一个数 如图所示 从第一行的数开始,每次可以往左下或右下走一格,直到走到最下行,把沿途经过的数全部加起来,如何走才能使得这个和最大? 分析: 一看到题目我们很自然的可以想到用回溯法(DFS)做,即每次都选择靠左的格 ...
分类:
其他好文 时间:
2018-11-07 20:00:59
阅读次数:
179
"113. 路径总和 II" 这题跟上个题的区别 "112. 路径总和" ,需要保存下路径,且有可能出现多条路径。 在前一个题的基础上加上回溯即可 ...
分类:
其他好文 时间:
2018-11-06 22:34:58
阅读次数:
199
回溯写到自闭;不想就删了; 正解:(数学方法) ...
分类:
其他好文 时间:
2018-11-06 00:48:13
阅读次数:
135
//这是个比较好的回溯模板class Solution { public: vector> combinationSum3(int k, int n) { vector> res; vector add; DFS(res,add,k,n,1); return res; } void DFS(vect... ...
分类:
其他好文 时间:
2018-11-05 13:34:12
阅读次数:
171
/*旅行售货员问题回溯法*/ #include #define N 4 int cc,//当前路径费用 bestc;//当前最优解费用 int a[N+1][N+1];//邻接矩阵,存放图的信息 int bestx[N+1];//当前最优解 int x[N+1];//当前解 void inputAj... ...
分类:
其他好文 时间:
2018-11-05 00:13:49
阅读次数:
285
"97. 交错字符串" 题不难,dfs加回溯即可。实际上就是暴力搜索,穷举所有选择路径。 以s3的每一个字母做一个状态,就面临两个抉择,选s1还是选s2。选s1路不通的话,回溯回来改选s2即可。 class Solution { // 状态:String s1, String s2, String ...
分类:
其他好文 时间:
2018-11-04 23:59:14
阅读次数:
286
限定条件: 如果放入该物品<剩余背包容量则回溯。 如果当前价值+剩余容量下剩余物品的最大价值<当前最大价值则回溯。(剩下在怎么放都不会比当前最大价值大,就没必要算了) 测试: 第一行分别输入物品数量n与背包容量c 用例: 10 30095 8975 5923 1973 4350 10022 726 ...
分类:
其他好文 时间:
2018-11-04 21:09:25
阅读次数:
120
首先上代码 首先我们这里有三根杆子依次排放,分别是 源杆、媒介杆、目标杆 对应 代码的 source、dest、intermediate,源杆上有n块大饼 我们定义一个函数 def hanoi(n,源杆,目标杆,媒介杆):# 意思是源杆 借助 媒介杆 到 目标杆 我们假设除了底下最后一层上面的n-1 ...
分类:
其他好文 时间:
2018-11-03 11:14:45
阅读次数:
240
package my_mian_shi; /** * * * * @author Administrator * */ public class GameMain { class TwoInteger{ public Integer column; public Integer row; } Int... ...
分类:
微信 时间:
2018-11-03 01:52:11
阅读次数:
192
栈概览 栈是线性集合,遵从后进先出原则( Last - in first - out , LIFO )原则 栈常用的操作包括压入( push ) 和弹出( pop ) 栈的应用 将中缀表达式转换为后缀表达式,并且计算后缀表达式的值 回溯算法 管理计算机内存以支持函数和方法调用 支持应用程序中的撤消功 ...
分类:
其他好文 时间:
2018-11-01 22:22:04
阅读次数:
202