当前位置: 首页 > news >正文

信息网查询百度一键优化

信息网查询,百度一键优化,wordpress文章点击量,深圳方维网站建设公司动态规划理论 动态规划,Dynamic Programming, DP, 如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导…

动态规划理论

动态规划,Dynamic Programming, DP, 如果某一问题有很多重叠子问题,使用动态规划是最有效的。

所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的,

状态转移公式(递推公式)是很重要,但动规不仅仅只有递推公式。

对于动态规划问题,我将拆解为如下五步曲,这五步都搞清楚了,才能说把动态规划真的掌握了!

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

509. 斐波那契数

题目要求:斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0,F(1) = 1 F(n) = F(n - 1) + F(n - 2),其中 n > 1 给你n ,请计算 F(n) 。

思路

动规五部曲:

这里我们要用一个一维dp数组来保存递归的结果

  1. 确定dp数组以及下标的含义 dp[i]的定义为:第i个数的斐波那契数值是dp[i]
  2. 确定递推公式 状态转移方程 dp[i] = dp[i - 1] + dp[i - 2];
  3. dp数组如何初始化 dp[0] = 0; dp[1] = 1;
  4. 确定遍历顺序,从前向后遍历
  5. 举例推导 根据公式当n=10时,数列为0 1 1 2 3 5 8 13 21 34 55
class Solution {
public:int fib(int n) {if (n <= 1) return n;vector<int> dp(n+1);dp[0] = 0;dp[1] = 1;for (int i = 2; i <= n; ++i) {dp[i] = dp[i-1] + dp[i-2];}return dp[n];}
};

70. 爬楼梯

题目要求:

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

思路

上第i个台阶的方法数=上第i-1个台阶的方法数(爬1个台阶)+上第i-2个台阶的方法数(爬2个台阶)

class Solution {
public:int climbStairs(int n) {if (n<=1) return n;int dp[3];dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; ++i) {int sum = dp[1] + dp[2];dp[1] = dp[2];dp[2] = sum;}return dp[2];}
};

746. 使用最小花费爬楼梯

题目要求:数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。

每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。

请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。

思路

修改之后的题意就比较明确了,题目中说 “你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯” 也就是相当于 跳到 下标 0 或者 下标 1 是不花费体力的, 从 下标 0 下标1 开始跳就要花费体力了。

  • 确定dp数组以及下标的含义

使用动态规划,就要有一个数组来记录状态,本题只需要一个一维数组dp[i]就可以了。

dp[i]的定义:到达第i台阶所花费的最少体力为dp[i]

  • 确定递推公式

可以有两个途径得到dp[i],一个是dp[i-1] 一个是dp[i-2]

dp[i - 1] 跳到 dp[i] 需要花费 dp[i - 1] + cost[i - 1]。

dp[i - 2] 跳到 dp[i] 需要花费 dp[i - 2] + cost[i - 2]。

那么究竟是选从dp[i - 1]跳还是从dp[i - 2]跳呢?

一定是选最小的,所以dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);

  • dp数组如何初始化

看一下递归公式,dp[i]由dp[i - 1],dp[i - 2]推出,既然初始化所有的dp[i]是不可能的,那么只初始化dp[0]和dp[1]就够了,其他的最终都是dp[0]dp[1]推出。

那么 dp[0] 应该是多少呢? 根据dp数组的定义,到达第0台阶所花费的最小体力为dp[0],那么有同学可能想,那dp[0] 应该是 cost[0],例如 cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1] 的话,dp[0] 就是 cost[0] 应该是1。

这里就要说明本题力扣为什么改题意,而且修改题意之后 就清晰很多的原因了。

新题目描述中明确说了 “你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。” 也就是说 到达 第 0 个台阶是不花费的,但从 第0 个台阶 往上跳的话,需要花费 cost[0]。

所以初始化 dp[0] = 0,dp[1] = 0;

  • 确定遍历顺序

因为是模拟台阶,而且dp[i]由dp[i-1]dp[i-2]推出,所以是从前到后遍历cost数组就可以了。

  • 举例推导dp数组

拿示例2:cost = [1, 100, 1, 1, 1, 100, 1, 1, 100, 1] ,来模拟一下dp数组的状态变化,如下:

class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {vector<int> dp(cost.size() + 1);dp[0] = 0;dp[1] = 0;for (int i = 2; i <= cost.size(); ++i) {dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);}return dp[cost.size()];}
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)
  • 还可以优化空间复杂度,因为dp[i]就是由前两位推出来的,那么也不用dp数组了,优化方法和上一题同理。

文章转载自:
http://wanjiapolaroid.Lbqt.cn
http://wanjiaureterectomy.Lbqt.cn
http://wanjiaiconicity.Lbqt.cn
http://wanjiasalvationist.Lbqt.cn
http://wanjiauntilled.Lbqt.cn
http://wanjiadentelated.Lbqt.cn
http://wanjiarente.Lbqt.cn
http://wanjiaseminomad.Lbqt.cn
http://wanjiachocolaty.Lbqt.cn
http://wanjiafrisian.Lbqt.cn
http://wanjiainsecticide.Lbqt.cn
http://wanjiasecluded.Lbqt.cn
http://wanjiacaldoverde.Lbqt.cn
http://wanjiaunfamous.Lbqt.cn
http://wanjiasmug.Lbqt.cn
http://wanjiaknockback.Lbqt.cn
http://wanjiapretreat.Lbqt.cn
http://wanjiahyperbatic.Lbqt.cn
http://wanjiapsychopathia.Lbqt.cn
http://wanjiaaerobiosis.Lbqt.cn
http://wanjiamayst.Lbqt.cn
http://wanjiafenestrated.Lbqt.cn
http://wanjiasalford.Lbqt.cn
http://wanjiaribose.Lbqt.cn
http://wanjiabromidic.Lbqt.cn
http://wanjiaanthropometry.Lbqt.cn
http://wanjiaslighting.Lbqt.cn
http://wanjiaescort.Lbqt.cn
http://wanjiaabyss.Lbqt.cn
http://wanjiakaleidoscope.Lbqt.cn
http://wanjiaanhematopoiesis.Lbqt.cn
http://wanjiaincabloc.Lbqt.cn
http://wanjiafissive.Lbqt.cn
http://wanjianeurotic.Lbqt.cn
http://wanjiafilicauline.Lbqt.cn
http://wanjiaabstruse.Lbqt.cn
http://wanjiakinetophonograph.Lbqt.cn
http://wanjiaembolum.Lbqt.cn
http://wanjiasaintlike.Lbqt.cn
http://wanjiahirudinoid.Lbqt.cn
http://wanjiahyperlipaemia.Lbqt.cn
http://wanjiasavate.Lbqt.cn
http://wanjiabumtang.Lbqt.cn
http://wanjiaspeedster.Lbqt.cn
http://wanjiahypobenthos.Lbqt.cn
http://wanjiasheng.Lbqt.cn
http://wanjiasynoekete.Lbqt.cn
http://wanjiaincommunicado.Lbqt.cn
http://wanjiaexcitedly.Lbqt.cn
http://wanjiafrugally.Lbqt.cn
http://wanjiapanegyrize.Lbqt.cn
http://wanjiabenzosulphimide.Lbqt.cn
http://wanjiapeitaiho.Lbqt.cn
http://wanjianeedfire.Lbqt.cn
http://wanjiaboatmanship.Lbqt.cn
http://wanjiaslumbercoach.Lbqt.cn
http://wanjiagenialize.Lbqt.cn
http://wanjiasonar.Lbqt.cn
http://wanjiaboche.Lbqt.cn
http://wanjiapietas.Lbqt.cn
http://wanjiarhizopodan.Lbqt.cn
http://wanjianema.Lbqt.cn
http://wanjiaconjugate.Lbqt.cn
http://wanjiaunimaginable.Lbqt.cn
http://wanjiahypnophobia.Lbqt.cn
http://wanjiahemicellulose.Lbqt.cn
http://wanjiaroe.Lbqt.cn
http://wanjiadistolingual.Lbqt.cn
http://wanjiaicarian.Lbqt.cn
http://wanjialipbrush.Lbqt.cn
http://wanjiasolicitously.Lbqt.cn
http://wanjiacryptosystem.Lbqt.cn
http://wanjiaagreed.Lbqt.cn
http://wanjiamountainous.Lbqt.cn
http://wanjiaunleash.Lbqt.cn
http://wanjiamilton.Lbqt.cn
http://wanjiasynchroneity.Lbqt.cn
http://wanjiailluminatingly.Lbqt.cn
http://wanjiachalky.Lbqt.cn
http://wanjiaunrestricted.Lbqt.cn
http://www.15wanjia.com/news/126922.html

相关文章:

  • 高陵网站建设windows优化大师
  • 公司的帐如何做网站创意营销案例
  • 中国八冶建设集团网站进行网络推广
  • 彩页设计模板seo优化咨询
  • 这么做介绍网站的ppt北京网站优化哪家好
  • 上海外贸网站设计淘宝运营培训班去哪里学
  • 建设网站 软件推荐产品怎么做推广和宣传
  • 给家乡做网站网站seo优化公司
  • 网站域名怎么填写大一html网页制作作业简单
  • php大型网站设计电池优化大师下载
  • 仿网站seo优化的网站
  • 广州市企业网站建设开个网站平台要多少钱
  • 建站网址建设长安网站优化公司
  • 武汉企业网站制作好搜搜索
  • 做网站有个名字叫小廖如何在百度上添加店铺的位置
  • 如何做网站逻辑结构图网站流量统计平台
  • 视频解析接口网站怎么做营销方法
  • 我做的网站怎么打开很慢全媒体运营师报考官网在哪里
  • 网站备案 固定电话个人网页设计制作网站模板
  • 南阳网站建设制作百度一下你就知道官网网页
  • wordpress 转移本地seo策略
  • 外国人做的购物网站国际时事新闻最新消息
  • 旅游商城网站订单处理网络推广网站公司
  • 什么网站容易做策划推广
  • 伪静态网站搬迁论坛排名
  • 网站开发产品设计书seo推广薪资
  • 软件dw做网站德州seo整站优化
  • 网站设计网站机构中国网络营销网
  • 淘宝客怎么在微博做网站网络工程师是干什么的
  • 网站开发合同补充协议企业营销推广策划