DP动态规划
文章平均质量分 68
Luolimasi
这个作者很懒,什么都没留下…
展开
-
前缀和算法
前缀和算法 含义:前缀和实际上就是对于长度为n的数组,我们新建立一个数组长度为n+1,第i个元素的值为前i个元素的和(包括第i个元素)。 特点:1、前缀和数组比原数组多一个长度。2、前缀和的第0个元素的值为0。3、根据前缀和数组的特点,求前缀和时。我们只需要用第i个元素的值+第i-1个前缀个数组的值就可能得到第i个前缀和数组的值。(这也是一种动态规划的思想)。 应用:前缀和算法可以解决一些在数组中与连续有关的问题。 题目 第一题和为K的子数组 代码 class Solution { public i原创 2021-08-16 02:08:20 · 317 阅读 · 0 评论 -
不同类型的动态规划问题简单区分
目前,就动态规划已经与到了很多类型的题目但现在最难理解的还是一下两个问题。 零钱兑换2 这个问题就是让我们求满足所给整数的零钱组合。 爬楼梯 但这个问题需要稍微做一下变式,我们能爬的阶数不仅仅局限于1和2了。给定我们一个非空数组,数组内的所有数字都是我们能够直接爬的阶数。。求能爬上顶点的方案 这两个问题显然都能利用动态规划的思想去解决。其代码完成后的差别也仅在内外循环的先后顺序 循环顺序的改变影响的是动态数组更新方式的不同。 第一题代码 class Solution { public int原创 2021-08-14 23:49:36 · 162 阅读 · 0 评论 -
DP动态规划
动态规划的基本性质: 1:问题具有最优子结构性质:问题所包含的子问题的解也是最有的。 2:无后效性:算一步是一步,只会存储当前的运算结果。为下一步计算提供结果。 动态规划的解题思路 核心:写出递归问题的转移方程并确定转移方程的边界条件。 爬楼梯问题 分析:对于爬上n阶楼梯的方法数,实际上就是爬上n-1阶和n-2阶方法数的总和(n-1再爬一阶就能到n,n-2再爬2阶就能到n)。对于边界条件就是爬1阶的方法数和爬2阶的方法数,然后根据转移方程不断推进,就可以得到答案。 但动态规划问题并不都是这么直接,很多问题的原创 2021-07-31 13:59:35 · 533 阅读 · 0 评论