动态规划:入门
在知乎上看到有人写得不错,最近也刚好开始在刷LC了,所以把自己解题时想到的写下来。
动态规划,利用历史记录,来避免重复计算
这些历史记录,需要一些变量去保存,一般就是用一维数组/二维数组去保存。
定义数组的含义:我们定义好数组的元素的意思,这样就很好解题了 找出数组元素之间的关系:我们的目的是求n,那么我们可以用n-1, n-2的历史记录去求得n的value 这个是最难的一步,也就是把大问题拆成小问题,譬如n = n-1 + n-2 找到初始值,初始值不一定只有一个,有可能是多个,所以我们要细心找到某一些“数组里面的值” 是没办法通过找元素间的关系去求出来的(也就是所谓的不可以再细分了)
第一题:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
定义数组的含义,我们这里定义一个一维数组:dp[] 我们的问题是青蛙跳上n级台阶总共有多少种跳法,于是我们定义dp[i]的含义就是跳上一个i级台阶一共有dp[i]种跳法,所以只要我们求得dp[n]的值就可以知道答案了 (我们先来分
动态规划:入门最先出现在Python成神之路。
共有 0 条评论