力扣算法刷题Day38|动态规划:斐波那契数 爬楼梯 使用最小花费爬楼梯

news2024/11/26 21:52:18

力扣题目:#509. 斐波那契数 

刷题时长:参考答案后5min

解题方法:动态规划

复杂度分析

  • 时间O(n)
  • 空间O(n)

问题总结

本题收获

  • 动规五部曲思路
    • 确定dp数组以及下标的含义:dp[i]的定义为,第i个数的斐波那契数值是dp[i]
    • 确定递推公式:状态转移方程 dp[i] = dp[i - 1] + dp[i - 2]
    • dp数组初始化:dp[0] = 0; dp[1] = 1;
    • 确定遍历顺序:递归公式中dp[i]是依赖 dp[i - 1] 和 dp[i - 2],那么遍历的顺序一定是从前到后遍历的
    • 举例推导dp数组:当N为10的时候,dp数组应该为数列 0 1 1 2 3 5 8 13 21 34 55

力扣题目:#70. 爬楼梯 

刷题时长:5min

解题方法:动规

复杂度分析

  • 时间O(n)
  • 空间O(n)

问题总结

  • dp数组初始化索引变化,for循环需随之变化

本题收获

  • 练习了空间O(1)的解法,无需维护dp数组,只要维护curr,pre1,pre2
  • 动规思路
    • 确定dp数组以及下标的含义:爬到第i层楼梯,有dp[i]种方法
    • 确定递推公式:dp[i] = dp[i - 1] + dp[i - 2] 
    • dp数组初始化:dp[1] = 1,dp[2] = 2,然后从i = 3开始递推
    • 确定遍历顺序:从前向后
    • 举例推导dp数组:同斐波那契数列

力扣题目: #746. 使用最小花费爬楼梯 

刷题时长:参考题解后5min

解题方法:动规

复杂度分析

  • 时间O(n)
  • 空间O(n)

问题总结

  • 递推公式只基于了cost,没用到dp之前的状态
  • 注意顶楼的定位不是cost数组的末位,而是cost数组末位的后一位
  •  到达第 0个台阶是不花费的,但从第0个台阶往上跳的话,需要花费 cost[0]

本题收获

  • 确定dp数组以及下标的含义:到达第i台阶所花费的最少体力为dp[i]
  • 确定递推公式:dp[i] = min(dp[i - 1] + cost[i - 1], dp[i - 2] + cost[i - 2])
  • dp数组初始化:dp[0] = 0,dp[1] = 0. 到达第0个台阶是不花费的,但从第0个台阶往上跳的话,需要花费cost[0]
  • 确定遍历顺序:从前向后
  • 举例推导dp数组:测试案例2举例如下

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VMware虚拟机彻底卸载详细教程

VMware虚拟机彻底卸载 一、彻底卸载过程1.1 停止VMware服务1.2 结束vmware任务1.3 开始卸载VMware1.4 删除注册表信息1.5 删除安装目录 二、vmware 安装教程三、vmware 使用教程 回到目录   回到末尾 一、彻底卸载过程 卸载之前,需要先关闭VMware相关的后台服务…

软件技巧:7款冷门且十分良心的软件

1、Okular 阅读器 Okular是一款来自KDE的通用文档阅读器,支持众多文档格式,如PDF、Postscript、DjVu、CHM、XPS、ePub、图片格式、漫画格式等,支持Windows、macOS与Linux,是科研学术人士阅读文献的好工具,也是电子书爱…

OWASP 之认证崩溃基础技能

文章目录 一、burp爆破用法1.Attack type爆破方式设置2.payload处理3.请求引擎设置4.攻击结果设置5.grap匹配设置 二、常见端口与利用1、文件共享2、远程连接3、Web应用4、数据库 三、爆破案例经验1、暴力破解攻击产生的5个原因或漏洞2、猜测用户名方法3、猜测密码方法 四、实验…

亚马逊云科技中国峰会:Amazon DeepRacer——载着 AI 梦想向前奔跑

目录 一、Amazon DeepRacer 是什么? 二、Amazon DeepRacer 的前世今生 三、Amazon DeepRacer 深度体验 四、2023亚马逊云科技中国峰会 1.中国峰会总决赛 2.自动驾驶赛车名校邀请赛 3.Girls in Tech Show 4.全球联赛 5.报名链接: 一、Amazon Dee…

C++个人通信录管理系统

背景: 使用C编写一个个人通信录管理系统,来完成作业上的一些需求。 1-提供录入个人信息、修改个人信息(姓名和出生日期除外)、删除个人信息等编辑功能 2-提供按姓名查询个人信息的功能 3-提供查找在5天之内过生日的人员的信息…

【C++初阶】C++STL详解(二)—— string类的模拟实现

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:C初阶 🎯长路漫漫浩浩,万事皆有期待 上一篇博客:【C初阶】…

Internet Relay Chat:mIRC 7.73 Crack

mIRC是一个流行的互联网中继聊天客户端,个人和组织使用它在世界各地的IRC网络上相互交流、共享、玩耍和工作。为互联网社区服务了20多年,mIRC已经发展成为一种强大、可靠和有趣的技术。 Latest News mIRC 7.73 has been released! (June 18th 2023) This…

Linux常用命令——fuser命令

在线Linux命令查询工具 fuser 使用文件或文件结构识别进程 补充说明 fuser命令用于报告进程使用的文件和网络套接字。fuser命令列出了本地进程的进程号,那些本地进程使用file,参数指定的本地或远程文件。对于阻塞特别设备,此命令列出了使…

【C语言复习】第六篇、关于C语言操作符的知识

目录 第一部分、常见操作符 第二部分、每个操作符的具体使用 1、算术操作符 1.1、除法运算符 / 1.2、取模运算符 % 2、移位操作符 2.1、左移 << 2.2、右移 >> 3、位操作符 3.1、按位异或的妙用 3.2、按位与的妙用 4、单目操作符 4.1、逻辑反操…

18-1降维与特征选择——偏最小二乘方法(附matlab程序)

1.简述 降维&#xff1a; 比如现在有100维的变量来表征一个东西&#xff0c;我们觉得太冗余复杂了&#xff0c;想降低到10维。但是我们没有确定的筛选依据&#xff0c;直接使用数学工具来实现降维&#xff0c;就好像丢进了一个黑箱&#xff0c;经过抽象、提炼&#xff0c;得到了…

【深度学习】3-3 神经网络的学习- 导数梯度

导数 导数就是表示某个瞬间的变化量&#xff0c;式子如下&#xff1a; 式子的左边&#xff0c;表示f(x)关于x的导数&#xff0c;即f(x)相对于x的变化程度。式子表示的导数的含义是&#xff0c;x的“微小变化”将导致函数f(x)的值在多大程度上发生变化。其中&#xff0c;表示…

AI绘画是什么?怎样提高AI绘画技巧

大家好&#xff0c;我是权知星球&#xff0c;今天跟大家探讨一下AI绘画是什么&#xff1f;怎样才能提高AI绘画技巧的问题。 随着人工智能技术的迅速发展&#xff0c;AI绘画已成为一项具有前瞻性的技术。在过去几年中&#xff0c;涌现出了许多功能强大的人工智能绘画工具&#x…

荣耀加冕!数据猿斩获三项大奖,彰显技术媒体硬实力!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 6月15日及6月16日&#xff0c;由数央网、数央公益联合国内众多媒体共同举办的2023国际绿色零碳节暨ESG领袖峰会、2023国际智造节暨硬科技峰会在北京举行。 该峰会旨在倡导全社会关注气候变化问题&#xff0c;积极采取行动&a…

TBarCode SDK:条码生成:11.15.1 Crack

TBarCode SDK&#xff1a;条码生成软件 TBarCode SDK 提供给 Microsoft Office 用户 和软件开发人员 条码打印。用这种 条码生成软件 您可以优良的品质的创建和打印所有用于工业和商业的 条码符号 。 最好的条码生成软件 TBarCode SDK 表示一个公知的集条形码创建组件集. 优秀…

Python爬虫需要那些步骤 ?

Python爬虫是一种自动化程序&#xff0c;可以通过网络爬取网页上的数据。Python爬虫可以用于各种用途&#xff0c;例如数据挖掘、搜索引擎优化、市场研究等。Python爬虫通常使用第三方库&#xff0c;例如BeautifulSoup、Scrapy、Requests等&#xff0c;这些库可以帮助开发者轻松…

Python面向对象编程2-面向过程的银行账号模拟程序 项目2.1 创建账号与存款

项目总目标&#xff1a;用面向过程思想设计一个简单的银行账号模拟程序。本次将迭代多个程序版本&#xff0c;每个版本都将添加更多功能。虽然这些程序没有达到发布的质量标准&#xff0c;但整个项目的目的是关注于代码如何与一个或多个银行账户的数据进行交互。 分析项目的必要…

<Linux> 基础IO

文章目录 文件操作基本概念当前路径文件打开方式"a""w""r" 文件描述符文件描述符fd是啥1. 为什么fd是从3开始&#xff0c;0&#xff0c;1&#xff0c;2呢&#xff1f;2. fd为什么是0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4&#…

Mockito单元测试基本使用

文章目录 1.为什么需要Mock2.Mockito 中常用方法2.1 Mock 方法2.2 对 Mock 出来的对象进行行为验证和Junit结果断言2.3 测试桩stub2.4 参数匹配器2.5 mock()与spy()2.6 InjectMocks 本文参考&#xff1a; 【码农教程】手把手教你Mockito的使用 - 掘金 (juejin.cn) java - doRet…

利用SD的插件从文本或者图片创建3D模型

利用SD的插件从文本或者图片创建3D模型 一个用于自动从文本或图像生成3D模型的稳定扩散WebUI的自定义扩展。 利用 OpenAl Shap-E 从文本或图像生成 3D 模型&#xff0c; GitHub项日地址: https://github.com/jtydhr88/sd-webui-txt-img-to-3d-model 安装步骤: 在扩展中心选…