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

设计建网站免费域名x网站

设计建网站,免费域名x网站,网站接入变更,国外校友网站建设的现状碎碎念:开始动态规划了!加油! 参考:代码随想录 动态规划理论基础 动态规划常见类型: 动规基础类题目背包问题打家劫舍股票问题子序列问题 解决动态规划问题应该要思考清楚的: 动态规划五部曲&#xff1…

碎碎念:开始动态规划了!加油!
参考:代码随想录

动态规划理论基础

动态规划常见类型:

  1. 动规基础类题目
  2. 背包问题
  3. 打家劫舍
  4. 股票问题
  5. 子序列问题

解决动态规划问题应该要思考清楚的:
动态规划五部曲:

  1. dp数组以及它下标的含义
  2. 递推公式
  3. dp数组如何初始化
  4. 遍历顺序
  5. 打印dp数组

509. 斐波那契数

题目链接

509. 斐波那契数

思想

动态规划五部曲:

  1. 确定dp数组以及下标的含义:dp[i] 第i个斐波那契数
  2. 确定递推公式:dp[i] = dp[i-1]+dp[i-2]
  3. dp数组的初始化:dp[0]=1 dp[1]=1
  4. 确定遍历顺序:从前向后遍历
  5. 打印dp数组:主要用来debug

由于求一个值只依赖前两个值,所以我们没必要维护一个数组,可以维护三个变量来完成状态转移。见python代码。

题解

// cpp
class Solution {
public:int fib(int n) {if (n == 0 || 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];}
};
# python
class Solution:def fib(self, n: int) -> int:if n <= 1:return nprev1, prev2 = 0, 1for _ in range(2, n+1):cur = prev1 + prev2prev1, prev2 = prev2, curreturn prev2

反思

本题简单,是因为题中已经给出了递推公式和初始值。

70. 爬楼梯

题目链接

70. 爬楼梯

思想

动态规划五部曲:

  1. 确定dp数组以及下标的含义:dp[i] 表示达到i阶梯有dp[i]种方法
  2. 确定递推公式:dp[i] = dp[i-1]+dp[i-2] 爬到第i阶时,要么是从i-1一步过来的,要么从i-2一步迈两阶过来的
  3. dp数组的初始化:dp[0]=0 dp[1]=1(dp[0]的取法主要是为了使得dp[2]为2,从含义上来说,到达0阶应该0种方法)也可以初始化dp[1]=1,dp[2]=2,不初始化dp[0]
  4. 确定遍历顺序:从前向后遍历
  5. 打印dp数组:主要用来debug

和上一题同理,也可以优化掉dp数组。

题解

// cpp
class Solution {
public:int climbStairs(int n) {if (n <= 1) 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];}
};
# python
class Solution:def climbStairs(self, n: int) -> int:if n <= 1:return nprev1 = 1prev2 = 2for _ in range(3, n + 1):cur = prev1 + prev2prev1, prev2 = prev2, curreturn prev2

反思

注意初始化那部分。

746. 使用最小花费爬楼梯

题目链接

746. 使用最小花费爬楼梯

思想

注意站在某个位置不花费cost,要爬上台阶的时候才会花费cost。
如图所示,顶楼应该在3的位置。
在这里插入图片描述
动态规划五部曲:

  1. 确定dp数组以及下标的含义:dp[i] 表示达到下标i的位置所需要的最小花费
  2. 确定递推公式:dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2])
  3. dp数组的初始化:dp[0]=0 dp[1]=0
  4. 确定遍历顺序:从前向后遍历
  5. 打印dp数组:主要用来debug

和上一题同理,也可以优化掉dp数组。

题解

// cpp
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()];}
};
# python
class Solution:def minCostClimbingStairs(self, cost: List[int]) -> int:prev1 = 0prev2 = 0for i in range(2, len(cost) + 1):cur = min(prev1 + cost[i - 2], prev2 + cost[i - 1])prev1, prev2 = prev2, curreturn prev2

反思

http://www.yayakq.cn/news/938257/

相关文章:

  • 厦门百度代理seo百度站长工具
  • 网站推广做百度还是360包河网站建设
  • 花生壳做局域网站灵犀科技-网站开发
  • 应聘网站运营建设面试网站建站后维护需要做哪些
  • 小工作室做网站网站开发 参考文献
  • 中企动力初期做的网站网站开发员需要什么素质
  • 浙江省交通建设工程监督管理局网站沈阳网站seo排名优化
  • 关于重新建设网站的请示短视频如何引流与推广
  • 网站前置审批项山东站群网站建设
  • 购物平台网站建设东营有网站
  • 网站栏目建设图做响应式网站一般都用哪些框架
  • 国外黑色背景网站购物
  • 免费个人网站建站申请一下遂昌建设局网站
  • 如何用域名访问网站网站定制与模板开发
  • 网站建设项目规划审批开发网站建设的问卷调查
  • dw如何建立网站企业咨询管理培训公司
  • 中国城投建设集团网站深圳投资公司排名前十
  • 小说阅读网站开发设计上市公司的信息网站
  • 制作销售网站有哪些网站优化的主要内容
  • 广东省住房和城乡建设局官网企业网站seo诊断
  • 用源码建设网站我想做跑腿网站怎么做
  • 丽水市城乡建设局网站论我国门户网站建设不足
  • 网站优化的服务器租用收费
  • 受欢迎的网站建设平台库尔勒网站建设哪家好
  • 网站开发好难呀php如何搭建网站后台
  • 广东省建设工程安全协会网站wordpress居中代码
  • 开发工程师是程序员吗seo挂机赚钱
  • 长春火车站最新消息阿里巴巴的网站是自己做的吗
  • 简单电商网站模板快递网站建设代码
  • 免费qq空间访客网站六安城市网官网