- 博客(5)
- 收藏
- 关注
转载 最小路径和—动态规划
思路:定义一个网格大小的二维数组,先为第一行和第一列赋值。然后后面的值等于网格当前值加上二维数组上面和右面的最小的值。 1 int minPathSum(vector<vector<int>> &grid) { 2 // write your code here 3 int row = grid.size...
2017-09-27 10:50:00 86
转载 栅栏染色—动态规划
思路:第一根栅栏有k种染色方案,第二根也有k种,前两根染色方案有k*k种。第三根栅栏染色有k-1种,若第三根栅栏染色和第二根栅栏不同,那么第三个染色和第一根染色没有关系,则前三根栅栏染色方案有k*k*(k-1)种;若第三根栅栏和第二根栅栏染色相同,那么要求第一个栅栏和第三根栅栏染色不同,则前三根栅栏染色方案有k*(k-1)。递推:现在考虑前i根栅栏染色方案。若第i根栅栏和第i...
2017-09-27 10:28:00 261
转载 不同路径—动态规划
思路:第一行和第一列的元素都有一条路径可以到达,将对应位置赋值为1。接下来每个位置处都可以从其上边或左边到达。 1 int uniquePaths(int m, int n) { 2 // write your code here 3 int ** s = new int*[m]; 4 for (int i = 0;...
2017-09-25 12:10:00 85
转载 数字三角形最小路径和—动态规划
思路:自底向上求解,从倒数第二行开始,本行节点到最后一行的最小路径和等于该节点的数据加上下面左右两个数据中最小的一个。不使用额外空间,直接将最小路径和存储到原有的数组中。1 int minimumTotal(vector<vector<int>> &triangle) {2 // write your code here3 ...
2017-09-24 23:07:00 237
转载 爬楼问题—递归、动态规划
问题:假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?code: 1 //动态规划解决爬楼问题 2 int dp_climbStairs(int n) { 3 if (n == 1) { 4 return 1; 5 } else if (n == 2) { 6 ...
2017-09-24 22:16:00 221
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人