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

外国人做的汉字网站sem什么意思

外国人做的汉字网站,sem什么意思,创建好网站如何把浏览器,口碑最好的装饰公司当然可以!LeetCode 746 是一道经典的动态规划入门题,我来用 C 为你详细解释。 题目描述 给定一个整数数组 cost,其中每个元素 cost[i] 表示从第 i 个台阶向上爬需要支付的费用。一旦支付费用,你可以选择向上爬 1 步 或 2 步。 你…

当然可以!LeetCode 746 是一道经典的动态规划入门题,我来用 C++ 为你详细解释。

题目描述

给定一个整数数组 cost,其中每个元素 cost[i] 表示从第 i 个台阶向上爬需要支付的费用。一旦支付费用,你可以选择向上爬 1 步2 步
你可以从下标 01 的台阶开始爬。
目标:计算到达楼梯顶部(即最后一个台阶之后)的最小总花费。

核心思路

  1. 动态规划定义
    dp[i] 表示到达第 i 个台阶所需的最小总花费。
    最终答案dp[n],其中 n = cost.size()(即到达顶部的最小花费)。

  2. 状态转移方程
    到达第 i 个台阶的方式有两种:

    • 从第 i-1 个台阶爬一步,总花费为 dp[i-1] + cost[i-1]
    • 从第 i-2 个台阶爬两步,总花费为 dp[i-2] + cost[i-2]
      因此:
    dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2])
    
  3. 初始条件

    • dp[0] = 0:无需花费即可站在起点前。
    • dp[1] = 0:同理,可选择从下标 0 或 1 开始,无需初始花费。

C++ 代码实现

#include <vector>
#include <algorithm>
using namespace std;class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();if (n == 0) return 0;vector<int> dp(n + 1, 0);  // dp[i] 表示到达第 i 个台阶的最小花费// 初始化:站在起点前(0 或 1)不需要花费dp[0] = 0;dp[1] = 0;// 动态规划计算for (int i = 2; i <= n; ++i) {dp[i] = min(dp[i-1] + cost[i-1], dp[i-2] + cost[i-2]);}return dp[n];  // 到达顶部(第 n 个台阶)的最小花费}
};

优化空间复杂度

由于 dp[i] 只依赖于 dp[i-1]dp[i-2],可以用两个变量滚动优化:

class Solution {
public:int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();if (n == 0) return 0;int prev2 = 0;  // 对应 dp[i-2]int prev1 = 0;  // 对应 dp[i-1]for (int i = 2; i <= n; ++i) {int current = min(prev1 + cost[i-1], prev2 + cost[i-2]);prev2 = prev1;prev1 = current;}return prev1;  // 对应 dp[n]}
};

示例解释

输入:cost = [10, 15, 20]

  • dp[0] = 0
  • dp[1] = 0
  • dp[2] = min(dp[1] + 15, dp[0] + 10) = min(0 + 15, 0 + 10) = 10
  • dp[3] = min(dp[2] + 20, dp[1] + 15) = min(10 + 20, 0 + 15) = 15
    输出:15(从下标 1 开始,支付 15,直接跳两步到顶部)

关键点总结

  1. 动态规划思想:用 dp 数组记录到达每个台阶的最小花费。
  2. 状态转移:当前状态只依赖前两个状态,可用滚动数组优化空间。
  3. 初始条件:起点前的位置无需花费。

这类问题是动态规划的基础,掌握后可轻松解决更复杂的路径优化问题!

http://www.dtcms.com/wzjs/3805.html

相关文章:

  • 建设储蓄卡网站广告投放方式
  • 怎样用wordpress搭建网站免费服务器
  • 做化工的外贸网站都有什么地方技术培训平台
  • 金属网站模板9个广州seo推广神技
  • 潍坊网站排名提升目前最好的引流推广方法
  • 语言网站开发互联网营销案例
  • wordpress做简单的商城seo教程培训班
  • 深圳最好的网站建设公司哪家好微信社群营销
  • 网站导航条做多高网络平台推广方案
  • 关键词搜索优化公司网站seo分析常用的工具是
  • 近期做网站需要什么软件电商网页制作教程
  • 怀化组织部网站广告最多的网站
  • 飞沐网站设计广东seo网站设计
  • 中华人民共和国政府官网资源优化排名网站
  • 开业时网站可以做哪些活动吗简易的旅游网页制作
  • 推广普通话的重要意义网站关键词优化技巧
  • 做的网站怎么联网国内看不到的中文新闻网站
  • 关于优化网站建设的方案百度资源
  • 互联网做视频网站需要许可证吗企业网站优化技巧
  • 自己做的网站怎么取sql数据今日热点新闻事件及评论
  • 装修网站系统如何让百度收录自己的网站
  • ppt免费制作网站重庆seo入门教程
  • 企业做网站好吗镇江seo快速排名
  • 创建网站的三种方法天津做优化好的公司
  • 网站建设的行业分析文明seo
  • 免费css网站模板如何优化关键词排名到首页
  • 广州建设执业注册中心网站八大营销方式有哪几种
  • 全平台响应式网站建设百度无锡营销中心
  • 4399网页毕节地seo
  • 宁波网站建设建站怎么做站长网站推广