学习要点

  1. 动态规划正着推
  2. 动态规划倒着推
  3. 理解递归
  4. 在动态规划与纯递归的类比分析中体会两者各自的特点

题目链接

        746. 使用最小花费爬楼梯 - 力扣(LeetCode)

题目描述

解法1:动态规划倒着推

// dp[i]--->从第i阶楼梯到达楼顶最小花费int minCostClimbingStairs(vector<int>& cost) {// dp[i]--->从第i阶楼梯到达楼顶最小花费int n = cost.size();vector<int> dp(n);dp[n-1] = cost[n-1];dp[n-2] = cost[n-2];for(int i = n-3;i>=0;i--){dp[i] = min(dp[i+1] , dp[i+2]) + cost[i];}return min(dp[0],dp[1]);}

解法2:动态规划正着推

//dp[i]--->到达第i阶楼梯的最小花费
int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();vector<int> dp(n + 1);dp[0] = 0;dp[1] = 0;for (int i = 2; i < (n + 1); i++){dp[i] = min((dp[i - 1] + cost[i - 1]), (dp[i - 2] + cost[i - 2]));}return dp[n];
}

解法分析

  1. 两种解法都是采用动态规划思想去解决问题,也就是说采用动态规划方法去解决问题时,不止一种思考方式
  2. 动态规划法去解决问题时,宏观逻辑是,利用计算机的记忆,把每种情况都记住,然后一步步迭代,这次迭代的过程,依赖上次迭代的结果,上次迭代的结果被计算机存储了。
  3. 可以说动态规划是在一步步的暴力穷举,只有走了第一步,才能走好第二步。只有走了第二步,才能走好第三步
  4. 动态规划在记什么:在记状态,你决定如何考虑状态,就决定你要怎么走
  5. 最好怎么考虑状态:状态最少的状态,就是解决问题最好的状态

解法3:纯递归

// 纯递归-->通过样例259/285,超出时间限制int dfs(int n,vector<int>& cost){if(n == 0) return 0;if(n == 1) return 0;int num_1 = dfs(n-1,cost) + cost[n-1];int num_2 = dfs(n-2,cost) + cost[n-2];return min(num_1,num_2);}int minCostClimbingStairs(vector<int>& cost) {int n = cost.size();int m1 = dfs(n-1,cost) + cost[n-1];int m2 = dfs(n-2,cost) + cost[n-2];return min(m1,m2);}

动态规划与递归类比

  1. 两者都是从最小或者说最直接的问题开始进行处理,一步步处理问题,达到最终目的
  2. 动态规划的问题处理过程是指定迭代结构,时间复杂度为O(n)
  3. 递归的问题处理过程是递归树结构,有太多的重复计算,造成时间复杂度膨胀
  4. 递归往往因为时间复杂度太高,而无法处理大范围的动态规划问题以及其它大范围的问题
  5. 递归能处理的问题,动态规划未必能轻松处理。例如leetcode:21. 合并两个有序链表-CSDN博客如果使用动态规划,实在无从下手。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88206.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88206.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/88206.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车毫米波雷达增强感知:基于相干扩展和高级 IAA 的超分辨率距离和角度估计.

重庆西南大学毫米波雷达团队在IEEE Transactions on Consumer Electronics 上发表的一篇论文&#xff1a;《基于相干扩展和高级 IAA 的超分辨率距离和角度估计》。 本文深入研究了毫米波&#xff08;mmWave&#xff09;调频连续波雷达距离和角度的超分辨问题。首先&#xff0c;…

软件更新 | 从数据到模型,全面升级!TSMaster新版助力汽车研发新突破

为满足汽车电子开发领域日益增长的测试与仿真需求&#xff0c;TSMaster最新版本聚焦实车数据采集、MBD智能建模与新API扩展三大核心功能。无论您是进行车载网络测试、ECU开发还是自动化验证&#xff0c;新版本都能为您提供更高效、更可靠的解决方案&#xff01; TSMaster 2025.…

PDF-XSS

前言&#xff1a; PDF文件是一种复杂的文档格式&#xff0c;由一系列对象组成&#xff0c;包括字体、图像、页面内容等。PDF文件支持嵌入JavaScript代码&#xff0c;这使得PDF文件不仅可以显示静态内容&#xff0c;还可以执行动态操作。这种特性被攻击者利用来嵌入恶意脚本代码…

MySQL 表关联关系详解

MySQL 表关联关系详解 本文档详细列举了MySQL中常见的表关联关系场景以及对应的SQL语句示例。 1. 一对一关系 (One-to-One) 场景&#xff1a;用户表和用户详情表 一个用户对应一个用户详情通常用于将大表拆分&#xff0c;提高查询性能 -- 创建用户表 CREATE TABLE users (…

kubernetes(k8s)集群部署(超详细)

k8s部署 kubernetes集群图例kubernetes 安装仓库初始化1、创建云主机2、初始化私有仓库kube-master安装1、防火墙相关配置2、配置yum仓库(跳板机)3、安装软件包(master)4、镜像导入私有仓库5、Tab键设置6、安装代理软件包7、配置内核参数8、使用kubeadm部署9、验证安装结果计算…

「Flink」算子主要方法介绍

背景&#xff1a; 上期文章主要讲了Flink项目搭建的一些方法&#xff0c;其中对于数据流的处理很大一部分是通过算子来进行计算和处理的&#xff0c;算子也是Flink中功能非常庞大&#xff0c;且很重要的一部分。 算子介绍&#xff1a; 算子在Flink的开发者文档中是这样介绍的…

3405. 统计恰好有 K 个相等相邻元素的数组数目

3405. 统计恰好有 K 个相等相邻元素的数组数目 给你三个整数 n &#xff0c;m &#xff0c;k 。长度为 n 的 好数组 arr 定义如下&#xff1a; arr 中每个元素都在 闭 区间 [1, m] 中。恰好 有 k 个下标 i &#xff08;其中 1 < i < n&#xff09;满足 arr[i - 1] arr…

Spring AI 项目实战(十):Spring Boot + AI + DeepSeek 构建智能合同分析技术实践(附完整源码)

系列文章 序号文章名称1Spring AI 项目实战(一):Spring AI 核心模块入门2Spring AI 项目实战(二):Spring Boot + AI + DeepSeek 深度实战(附完整源码)3Spring AI 项目实战(三):Spring Boot + AI + DeepSeek 打造智能客服系统(附完整源码)4

impala中时间戳转(DATE)指定格式的字符串

注意i&#xff1a;注意大小写 timestamp\date–>string SELECT now(),from_timestamp(now(),yyyyMMdd);string->timestamp SELECT 20230710,to_timestamp(20230710,yyyyMMdd);日期加减 select 20231201,from_timestamp(date_add(to_timestamp(20231201,yyyyMMdd),1),…

百度下拉框出词技术解密:72小时出下拉词软件原理分享

如何才能刷下拉词&#xff1f;这个问题一直是企业做流量时最纠结的问题&#xff0c;百度下拉词作为百度搜索体验中的一项智能化功能&#xff0c;极大地方便了用户快速完成搜索&#xff0c;也成为了企业在搜索引擎优化&#xff08;SEO&#xff09;策略中的重要流量入口。通过研究…

上海人工智能实验室明珠湖会议首开,解答AI前沿疑问,推进科学智能

在通用人工智能&#xff08;AGI&#xff09;探索如火如荼的当下&#xff0c;如何加速突破&#xff1f;如何凝练关键问题、孕育颠覆性创新&#xff1f;2025年6月13日&#xff0c;上海人工智能实验室主任、首席科学家&#xff0c;清华大学惠妍讲席教授周伯文在首届明珠湖会议&…

BeyondCompare安装(永久免费使用+全网最详细版)

一.下载&#xff1a; 官网下载&#xff08;速度较慢&#xff09;&#xff1a; https://www.scootersoftware.com/download.php 阿里云盘&#xff08;不限速&#xff09; https://www.alipan.com/s/WaG1z54BQ2U 二.安装&#xff08;无脑下一步即可&#xff09; 三.永久免费…

如何用AI开发完整的小程序<7>—让AI微调UI排版

上一节我们介绍了如何让AI修改整体UI视觉效果。 不过有时候AI调整的并不理想&#xff0c;一些UI的布局还是需要微调。 比如已经实现的这个开始页面&#xff0c;我觉得标题太高了&#xff0c;这时候可以自己调&#xff0c;也可以让AI单独调&#xff0c;下面详细介绍。 一、手动…

64-Oracle Redo Log

小伙伴们&#xff0c;关于数据库的redo log相信大家都操作很多次了,且这是OCM考试必考内容。Oracle Redo Log是一种特殊的日志文件&#xff0c;用于完整地记录数据库中所有数据变更的详细信息。当数据库执行插如、更新或删除等更新操作&#xff0c;这些操作并不会立刻写入数据库…

hive集群优化和治理常见的问题答案

Hive 集群优化与治理常见问题答案合集 &#x1f42d;1. Q&#xff1a;Hive中如何优化大表Join操作&#xff1f; A&#xff1a; 使用Map Join&#xff08;小表Join大表时&#xff09;避免Reduce阶段。启用自动Map Join&#xff08;设置hive.auto.convert.jointrue&#xff09;…

C#采集电脑硬件(CPU、GPU、硬盘、内存等)温度和使用状况

这是采集出来的Json&#xff0c;部分电脑&#xff08;特别是笔记本&#xff09;无法获取到&#xff1a; {"HardwareList": [{"Name": "MITX-6999","Type": "主板","Sensors": [],"WmiReport": null}, …

C3新增特性

✅ 一、选择器&#xff08;Selectors&#xff09; 1. 属性选择器 [attr^value]: 匹配属性值以特定字符串开头的元素。[attr$value]: 匹配属性值以特定字符串结尾的元素。[attr*value]: 匹配属性值包含特定字符串的元素。 2. 子元素和兄弟元素选择器 :nth-child(n): 匹配父元…

报错 @import “~element-ui/packages/theme-chalk/src/index“;

报错 import "~element-ui/packages/theme-chalk/src/index"; 具体报错报错原因 具体报错 SassError: Can’t find stylesheet to import. import “~element-ui/packages/theme-chalk/src/index”; src\views\login\theme\element-variables.scss 8:9 root stylesh…

ESLint从入门到实战

引言 作为前端开发者&#xff0c;你是否遇到过这样的情况&#xff1a;团队成员写出的代码风格各异&#xff0c;有人喜欢用分号&#xff0c;有人不用&#xff1b;有人用双引号&#xff0c;有人用单引号&#xff1b;代码评审时总是在纠结这些格式问题而不是业务逻辑&#xff1f;…

vue3实现markdown文档转HTML并可更换样式

vue3实现markdown文档转HTML 安装marked npm install marked<template><!-- 后台可添加样式编辑器 --><div class"markdown-editor" :class"{ fullscreen: isFullscreen, preview-mode: isPreviewMode }"><div class"editor-c…