卡特兰数
栈是一种常见的数据结构,有许多关于栈的问题,其中之一就是统计元素可能的出栈序列。具体说,就是给定n个元素,依次通过一个栈,求可能的出栈序列的个数。
如果我们用直接模拟的方法,当n较大时会很费时间;
例如动态规划。令f[i,j]表示栈内有i个元素且栈外有j个元素还未进栈,那么以进栈还是出栈为决策就马上得到了转移方程f[i,j]=f[i-1,j]+f[i+1,j-1]。如此一来,很...
分类:
其他好文 时间:
2014-06-11 06:29:56
阅读次数:
296
题目
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).
The robot can only move either down or right at any point in time. The robot is trying t...
分类:
其他好文 时间:
2014-06-10 18:43:37
阅读次数:
254
动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免反复计算。通经常使用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1.
描写叙述一个最优解的结构,寻找子问题,对问题进行划分...
分类:
其他好文 时间:
2014-06-10 15:00:23
阅读次数:
217
以i为根节点时,其左子树构成为[0,...,i-1],其右子树构成为[i+1,...,n]构成。根结点确定时,左子树与右子树的结点个数都是确定的。这样就可以把这个问题化成子问题。因此可以用动态规划解。Sigma(左边的子树可能状态
* 右边子树可能状态) = 当前个数的结点可能的状态数。public...
分类:
其他好文 时间:
2014-06-10 12:46:05
阅读次数:
175
给定一个包含N个整数的数组,求数组的子数组之和的最大值。...
分类:
其他好文 时间:
2014-06-10 11:18:42
阅读次数:
154
题目
You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
方法
从后往前求解...
分类:
其他好文 时间:
2014-06-10 07:38:21
阅读次数:
171
如果问题是由交叠的子问题所构成的,那么我们就可以用动态规划技术来解决它。也就是说,一个问题的解可由它的规模更小的子问题的解递推得出。由于子问题的交叠性质,所以采用递归地方法一次又一次地求解子问题时,进行了很多重复的工作。所以动态规划法建议:把子问题的解存入某个表中,通过表一步步反解出原始问题。斐波那契数列就是一个很好的例子:
F(n) = F(n-1) + F(n-2) 当n≥2
F(...
分类:
其他好文 时间:
2014-06-10 06:59:47
阅读次数:
354
算法导论读书笔记(17)目录动态规划概述钢条切割自顶向下的递归实现使用动态规划解决钢条切割问题子问题图重构解钢条切割问题的简单Java实现动态规划概述和分治法一样,
动态规划 (dynamic programming)是通过组合子问题的解而解决整个问题的。分治法是将问题划分成一些独立的子问题,递归地...
分类:
其他好文 时间:
2014-06-09 22:10:01
阅读次数:
397
1068. Find More Coins (30)Eva loves to collect
coins from all over the universe, including some other planets like Mars. One
day she visited a univers...
分类:
其他好文 时间:
2014-06-08 18:49:44
阅读次数:
432