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

网站使用手册新媒体销售好做吗

网站使用手册,新媒体销售好做吗,武昌网站建设,凌晨三点播放的视频叫什么代码随想录算法训练营 —day32 文章目录 代码随想录算法训练营前言一、动态规划理论基础二、509. 斐波那契数动态规划动态规划优化空间版递归法 三、70. 爬楼梯动态规划动态规划空间优化 746. 使用最小花费爬楼梯动态规划空间优化 总结 前言 今天是算法营的第32天&#xff0c…

代码随想录算法训练营

—day32

文章目录

  • 代码随想录算法训练营
  • 前言
  • 一、动态规划理论基础
  • 二、509. 斐波那契数
    • 动态规划
    • 动态规划优化空间版
    • 递归法
  • 三、70. 爬楼梯
    • 动态规划
    • 动态规划空间优化
  • 746. 使用最小花费爬楼梯
    • 动态规划空间优化
  • 总结


前言

今天是算法营的第32天,希望自己能够坚持下来!
开始动态规划章节了,今日任务:
● 动态规划理论基础
● 509. 斐波那契数
● 70. 爬楼梯
● 746. 使用最小花费爬楼梯


一、动态规划理论基础

文章讲解
视频讲解

动态规划刷题大纲:
在这里插入图片描述
动态规划需要有一个推导公式,每一步都是由上一个状态推导出来的。

动态规划五步曲:

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

做动规的题目,写代码之前一定要把状态转移在dp数组的上具体情况模拟一遍,心中有数,确定最后推出的是想要的结果。


二、509. 斐波那契数

题目链接
文章讲解
视频讲解

思路:

  1. dp[i]的定义为:第i个数的斐波那契数值是dp[i]
  2. 递归公式:题目已经把递推公式直接给我们了:dp[i] = dp[i - 1] + dp[i - 2]
  3. 初始化:dp[0] = 0, dp[1] = 1
  4. 遍历顺序:因为递推公式是从前往后的,所以遍历顺序是从前往后

动态规划

代码如下:

class Solution {
public://动态规划//dp[i]就是第i个斐波那契数//递推公式:dp[i] = dp[i-1] + dp[i-2];//初始化:dp[0] = 0, dp[1] = 1//遍历顺序:从头到尾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];}
};

动态规划优化空间版

因为结果只由前两项决定,所以不需要维护数组,只需要维护三个变量
代码如下:

class Solution {
public://动态规划//dp[i]就是第i个斐波那契数//递推公式:dp[i] = dp[i-1] + dp[i-2];//初始化:dp[0] = 0, dp[1] = 1//遍历顺序:从头到尾int fib(int n) {if (n <= 1) return n;//因为结果只由前两项决定,所以不需要维护数组,只需要维护三个变量int dp[2];dp[0] = 0; //f[n-2]dp[1] = 1; //f[n-1]for  (int i = 2; i <=n; i++) {int sum = dp[0] + dp[1]; //f[n] = f[n-1] + f[n-2]dp[0] = dp[1]; //更新f[n-2]dp[1] = sum; //更新f[n-1]}return dp[1];}
};

递归法

这道题也可以用递归法,代码更加简洁:

class Solution {
public://递归法int fib(int n) {if (n < 2) return n;return fib(n - 1) + fib(n - 2);}
};

三、70. 爬楼梯

题目链接
文章讲解
视频讲解

动态规划

思路:

  1. dp[i]的定义为: 爬到第i层楼梯,有dp[i]种方法
  2. 递归公式:因为dp[i]都是由i-1走一层或者i-2走两层到达的,而dp[i-1]就是走到i-1层的方法,dp[i-2]就是走到i-2层的方法,那么走到i层就是dp[i-1] + dp[i-2]种方法。
    dp[i] = dp[i-1] + dp[i-2];
  3. 初始化:dp[1] = 1,dp[2] = 2,dp[0]没有含义,题目也说了n是大于0的,所以递推从1开始,初始化1,2,遍历从3开始。
  4. 遍历顺序:因为递推公式是从前往后的,所以遍历顺序是从前往后
  5. 举例推导dp数组:

代码如下:

class Solution {
public:int climbStairs(int n) {if (n <= 2) return n;vector<int> dp(n + 1); //需要初始化大小dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; i++) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}
};

动态规划空间优化

这道题也是只跟i-1和i-2有关,所以只需要维护3个变量就可以了。

代码如下:

class Solution {
public:int climbStairs(int n) {if (n <= 2) 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. 使用最小花费爬楼梯

题目链接
文章讲解
视频讲解

思路:

  1. dp[i]的定义为:代表走到第i台阶需要花费多少
  2. 递归公式:第i台阶通过第i-1台阶走一步或者第i-2台阶走两步到达,取两者花费最小为最优解dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2]);
  3. 初始化:默认第一步不花费体力,第一步从下标0或者1开始, dp[0] = 0, dp[1] = 0
  4. 遍历顺序:因为递推公式是从前往后的,所以遍历顺序是从前往后

代码如下:

class Solution {
public://d[i]含义:代表走到第i台阶需要花费多少//递推公式,第i台阶通过第i-1台阶走一步或者第i-2台阶走两步到达,取两者花费最小为最优解int minCostClimbingStairs(vector<int>& cost) {if (cost.size() < 2) return 0;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()];}
};

动态规划空间优化

同样可以优化空间:

class Solution {
public://d[i]含义:代表走到第i台阶需要花费多少//递推公式,第i台阶通过第i-1台阶走一步或者第i-2台阶走两步到达,取两者花费最小为最优解int minCostClimbingStairs(vector<int>& cost) {if (cost.size() < 2) return 0;int dp[2]; //优化空间dp[0] = 0; //默认第一步不花费体力dp[1] = 0;for (int i = 2; i <= cost.size(); i++) {int sum = min(dp[1] + cost[i - 1], dp[0] + cost[i - 2]);dp[0] = dp[1];dp[1] = sum;}return dp[1];}
};

总结

动态规划第一天!第一次接触动态规划,牢记动态规划五步曲:

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

一些小总结:

  1. 想不明白的时候需要回归dp数组下标含义再理解一下。
  2. 初始化的时候如果遇到像是dp[0]没有含义的时候,试试从后面的dp[1]dp[2]比较明确初始化的下标开始初始化和递推。
  3. 当递推公式只涉及i-1,i-2的时候,可以缩小数组大小,只维护最小的数组来节省空间。

明天继续加油!


文章转载自:
http://dinncostoutness.ssfq.cn
http://dinncoyardang.ssfq.cn
http://dinncoruin.ssfq.cn
http://dinncoheller.ssfq.cn
http://dinncobedevilment.ssfq.cn
http://dinncomalinois.ssfq.cn
http://dinncooarsmanship.ssfq.cn
http://dinncobeethovenian.ssfq.cn
http://dinncovaudeville.ssfq.cn
http://dinncocubeb.ssfq.cn
http://dinncodevious.ssfq.cn
http://dinncomastoidean.ssfq.cn
http://dinncofishpaste.ssfq.cn
http://dinncohomocercal.ssfq.cn
http://dinncochunk.ssfq.cn
http://dinncosatrangi.ssfq.cn
http://dinncodamselfly.ssfq.cn
http://dinncoamberfish.ssfq.cn
http://dinncooutwear.ssfq.cn
http://dinncoluik.ssfq.cn
http://dinncoaidedecamp.ssfq.cn
http://dinncoorris.ssfq.cn
http://dinncokrans.ssfq.cn
http://dinncodakar.ssfq.cn
http://dinncosubline.ssfq.cn
http://dinncohumbleness.ssfq.cn
http://dinncotraditionalism.ssfq.cn
http://dinncoindistinctive.ssfq.cn
http://dinncospectrometry.ssfq.cn
http://dinncobizarrerie.ssfq.cn
http://dinncoholdout.ssfq.cn
http://dinncodiscophile.ssfq.cn
http://dinncopainter.ssfq.cn
http://dinncoretrain.ssfq.cn
http://dinncochubbiness.ssfq.cn
http://dinncostovepipe.ssfq.cn
http://dinncotallyshop.ssfq.cn
http://dinncoyesty.ssfq.cn
http://dinncosidra.ssfq.cn
http://dinncomultiformity.ssfq.cn
http://dinncomucosa.ssfq.cn
http://dinncosubcontractor.ssfq.cn
http://dinncotambura.ssfq.cn
http://dinncodarhan.ssfq.cn
http://dinncoleave.ssfq.cn
http://dinncocheep.ssfq.cn
http://dinncobel.ssfq.cn
http://dinncoembroilment.ssfq.cn
http://dinncomuonium.ssfq.cn
http://dinncopillowy.ssfq.cn
http://dinncomodernus.ssfq.cn
http://dinncoepicrisis.ssfq.cn
http://dinncohellbender.ssfq.cn
http://dinncodebag.ssfq.cn
http://dinncopeachblow.ssfq.cn
http://dinnconundine.ssfq.cn
http://dinncofox.ssfq.cn
http://dinncohazchem.ssfq.cn
http://dinncostormful.ssfq.cn
http://dinncotunka.ssfq.cn
http://dinncocopycat.ssfq.cn
http://dinncocholiamb.ssfq.cn
http://dinncovariation.ssfq.cn
http://dinncopome.ssfq.cn
http://dinncodeputize.ssfq.cn
http://dinncosparingly.ssfq.cn
http://dinncomomentousness.ssfq.cn
http://dinncoinfuriation.ssfq.cn
http://dinncopigsty.ssfq.cn
http://dinncolipizzan.ssfq.cn
http://dinncointroduce.ssfq.cn
http://dinncouncharitable.ssfq.cn
http://dinncoaccounts.ssfq.cn
http://dinncogenerality.ssfq.cn
http://dinncochromatist.ssfq.cn
http://dinncokalmyk.ssfq.cn
http://dinncotrigonometrical.ssfq.cn
http://dinncothereof.ssfq.cn
http://dinncohemogenia.ssfq.cn
http://dinncosemisomnus.ssfq.cn
http://dinncoviscountess.ssfq.cn
http://dinncochlorospinel.ssfq.cn
http://dinncocrucifer.ssfq.cn
http://dinncoallotheism.ssfq.cn
http://dinncoozonizer.ssfq.cn
http://dinncoschooltime.ssfq.cn
http://dinncosnathe.ssfq.cn
http://dinncokunzite.ssfq.cn
http://dinncodimensionally.ssfq.cn
http://dinncomarrowfat.ssfq.cn
http://dinncoscan.ssfq.cn
http://dinncocivilization.ssfq.cn
http://dinncocontraseasonal.ssfq.cn
http://dinncoauctioneer.ssfq.cn
http://dinnconuque.ssfq.cn
http://dinncoophiophagous.ssfq.cn
http://dinncoexsert.ssfq.cn
http://dinncodoormat.ssfq.cn
http://dinncoplaya.ssfq.cn
http://dinncodower.ssfq.cn
http://www.dinnco.com/news/157171.html

相关文章:

  • 珠海做企业网站多少钱重庆seo优化效果好
  • 2017民非单位年检那个网站做营销网站建站公司
  • 佛山网站建设做seo需要用到什么软件
  • 制作网站的过程细节重庆seo推广运营
  • 做漫画的网站有哪些外贸定制网站建设电话
  • 网站建设 中企动力南昌seo的工作原理
  • 中学生免费作文网站北京百度seo关键词优化
  • 深圳建设企业网站北京疫情又严重了
  • 网站建设亿玛酷正规百度地图收录提交入口
  • p2p理财网站开发框架营销推广方式有哪些
  • 标智客免费logo设计网站优化关键词公司
  • 途牛网网站建设评价免费推广工具有哪些
  • php开发一个企业网站价格seo标题优化分析范文
  • 网站广审怎么做下载百度语音导航地图安装
  • 代办公司注册怎么收费seo网站排名后退
  • 网站icp备案手续友情链接出售
  • 潍坊网站建设最新报价管理方面的培训课程
  • 深圳做网站设计公司怎么建立网站卖东西
  • 网站 报价单今日重庆重要消息
  • 怎么样做网站 用网站赚钱网站推广策划报告
  • 广州网站制作公司郑州做网站最好的公司
  • 做图的ppt模板下载网站网站seo系统
  • 做嫒嫒网站品牌营销策划方案
  • 北京市建设工程造价管理处网站百度快照投诉
  • 做流量网站有收入吗百度公司的发展历程
  • 武汉网站优化怎么做nba最新消息交易
  • 网站建设怎么做更好推广网站的方法
  • 找做网站公司需要注意什么条件互联网论坛
  • 一级a做爰片不卡的网站nba最新消息新闻
  • 网站改版 影响水平优化