day38 斐波那契数 爬楼梯 使用最小花费爬楼梯

题目1:509 斐波那契数

题目链接:509 斐波那契数

题意

斐波那契数列由0和1开始  后面的每一项数字都是前面两项数字之和  计算F(n)

动态规划

动规五部曲:

1)dp数组及下标i的含义  

dp[i] : 第i个斐波那契数值   i:  第i个斐波那契数

2)递推公式

dp[i] = dp[i-1] + dp[i-2]

3)dp数组初始化

dp[0] = 0   dp[1] = 1

4)遍历顺序

dp[i]由dp[i-1]和dp[i-2]得到,所以从前向后遍历

5)打印dp数组

代码

class Solution {
public:
    int fib(int n) {
        if(n<=1) return n;
        vector<int> dp(n+1);
        //dp数组初始化
        dp[0] = 0;
        dp[1] = 1;
        for(int i=2;i<=n;i++){
            dp[i] = dp[i-1] + dp[i-2];
        }
        return dp[n];
    }
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

题目2:70 爬楼梯

题目链接:70 爬楼梯

题意

爬楼梯需要n阶才能到达楼顶(n>=0),每次可以爬1或2个台阶,爬到楼顶有几种方法

动态规划

动规五部曲:

1)dp数组及下标i的含义  

dp[i] : 达到第i阶楼梯有dp[i]种方法   i:  第i阶楼梯

2)递推公式

dp[i] = dp[i-1] + dp[i-2]

3)dp数组初始化

n>=0 dp[0]没有意义      dp[1] = 1   dp[2] = 2

4)遍历顺序

dp[i]由dp[i-1]和dp[i-2]得到,所以从前向后遍历

5)打印dp数组

代码

class Solution {
public:
    int climbStairs(int n) {
        if(n<=2) return n;
        vector<int> dp(n+1);
        //dp数组初始化
        dp[1] = 1;
        dp[2] = 2;
        for(int i=3;i<=n;i++){
            dp[i] = dp[i-1] + dp[i-2];
        }
        return dp[n];
    }
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

题目3:746 使用最小花费爬楼梯

题目链接:746 使用最小花费爬楼梯

题意

整数数组的元素cost[i]是从楼梯第i个台阶向上爬需要支付的费用 该费用可支持向上爬1个或两个台阶,可以选择下标为0或1的台阶开始爬   返回到达楼顶的最低费用

动态规划

动规五部曲:

1)dp数组及下标i的含义  

dp[i] : 达到第i阶楼梯最少需要花费dp[i]  i:  第i阶楼梯

2)递推公式

dp[i] = min ( dp[i-1] + const[i-1], dp[i-2] + const[i-2] ) 

3)dp数组初始化

因为可以选择下标0或1的台阶往上爬      dp[0] = 0     dp[1] = 0

4)遍历顺序

dp[i]由dp[i-1]和dp[i-2]得到,所以从前向后遍历

5)打印dp数组

代码

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()];
    }
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(n)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用 Visual Studio Code 在远程计算机上调试 PostgreSQL

使用 Visual Studio Code 在远程计算机上调试 PostgreSQL 1. 概述 PostgreSQL 是一个功能强大的开源关系数据库管理系统&#xff0c;适用于各种应用程序。在开发过程中&#xff0c;调试 PostgreSQL 对于识别和解决问题至关重要。在本博客中&#xff0c;我们将手把手教你使用客…

【考研408】操作系统笔记

文章目录 [toc] 计算机系统概述操作系统的基本概念操作系统的概念和特征操作系统的目标和功能&#xff08;**处理器管理、存储器管理、设备管理、文件管理、向用户提供接口、扩充机器**&#xff09; 操作系统的发展与分类操作系统的运行环境操作系统的运行机制 操作系统的体系结…

Node.js-1

Node.js 简介 定义&#xff1a;Node.js 是一个跨平台 JavaScript 运行环境&#xff0c;使开发者可以搭建服务器端的 JavaScript 应用程序 为什么 Node.js 能执行 JS 代码&#xff1a; Chrome 浏览器能执行 JS 代码&#xff0c;依靠的是内核中的 V8引擎&#xff08;即&#x…

【ELK】logstash快速入门

1.概述 1.1.什么是logstash&#xff1f; 之前我们聊了es&#xff0c;并且用docker搭建了一个eskibana的环境。es目前最普遍的用法是用来存储日志的&#xff0c;然后结合kibana对日志做一些可视化的工作。既然要收集日志&#xff0c;就面临着一个问题&#xff1a; 各个系统的…

Linux下新建用户

新建用户 sudo adduser -m username添加密码 sudo passwd username设置权限 sudo vi /etc/sudoers在user privilege这一行&#xff0c;仿照root&#xff0c;另起一行&#xff0c;添加上 设置命令解释器 sudo vi /etc/passwd找到新建用户名&#xff0c;将sh改为bash vi中…

基于知识图谱的少样本和零样本学习综述

论文题目&#xff1a;Zero-Shot and Few-Shot Learning With Knowledge Graphs: A Comprehensive Survey 本文作者&#xff1a;陈矫彦&#xff08;曼彻斯特大学&牛津大学&#xff09;、耿玉霞&#xff08;浙江大学&#xff09;、陈卓&#xff08;浙江大学&#xff09;、Je…

快速理解复杂系统组成学习内容整合

目录 一、复杂系统组成 二、接入系统 (Access System) 三、应用系统 (Application System) 四、基础平台 (Foundation Platform) 五、中间件 (Abundant External Middleware) 六、支撑系统 (Supporting System) 参考文章 一、复杂系统组成 复杂系统是由多个相互关联、相…

【Java程序设计】【C00245】基于Springboot的家政服务管理平台(有论文)

基于Springboot的家政服务管理平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的家政服务管理平台 本系统分为前台模块、管理员功能模块、用户功能模块以及服务人员功能模块。 前台模块&#xff1a;系统首页的…

【云原生】docker安全与https加密的超文本传输协议CA证书生成

目录 一、docker安全 二、http与https的区别 三、为什么要使用 SSL 证书&#xff1f; 四、https证书认证的过程 https单向认证的访问流程 https双向认证的访问流程 五、如何获取证书&#xff1f; 六、实操获取证书并验证 1、通过阿里云获取证书 2、通过mkcert获取证书…

【Vue3实战】TypeScript前端实战基础

【Vue3实战】TypeScript前端实战基础 前言一、TypeScript的由来二、什么是TypeScript?三、静态类型检查四、类型注解和类型推导五、可选参数和默认参数六、接口和类型别名接口接口的可选设置类型 七、类和继承接口的继承交叉类型模拟继承 八、泛型什么是泛型泛型接口泛型函数泛…

深度学习驱动下的自然语言处理进展及其应用前景

文章目录 每日一句正能量前言技术进步应用场景挑战与前景自然语言处理技术当前面临的挑战未来的发展趋势和前景 伦理和社会影响实践经验后记 每日一句正能量 一个人若想拥有聪明才智&#xff0c;便需要不断地学习积累。 前言 自然语言处理&#xff08;NLP&#xff09;是一项正…

LeetCode---382周赛---位运算

题目列表 3019. 按键变更的次数 3020. 子集中元素的最大数量 3021. Alice 和 Bob 玩鲜花游戏 3022. 给定操作次数内使剩余元素的或值最小 一、按键变更的次数 题目简单明了&#xff0c;就是看相邻的两个字母是否相等&#xff0c;不区分大小写&#xff0c;直接遍历统计即可…

Linux下tar命令详解

tar #归档命令 格式 • Tar -参数 [args]..... 参数&#xff1a; 必选参数&#xff1a; 辅助参数&#xff1a; 额外参数&#xff1a; # 打包时排除某个文件 tar cf 文件名.tar --exclude路径/文件 路径 注&#xff1a;此处的路径前后需要保持保持一致&#xff0c;统一…

【Langchain+Streamlit】打造一个旅游问答AI

利用LangchainStreamlit打造一个交互简单的旅游问答AI机器人&#xff0c;如果你有openai账号,可以按照如下的网址直接体验&#xff0c;如果你没有的话可以站内私信博主要一下临时key体验一下&#xff1a; 产品使用传送门—— http://101.33.225.241:8501/ 这里有演示效果和代码…

AIGC专题:2024年生成式人工智能预测报告(英文版)

今天分享的是AIGC系列深度研究报告&#xff1a;《AIGC专题&#xff1a;2024年生成式人工智能预测报告&#xff08;英文版&#xff09;》。 &#xff08;报告出品方&#xff1a;CBINSIGHTS&#xff09; 报告共计&#xff1a;112页 我们没有足够的高质量数据来训练LLM 研究人员…

计算机视觉中的目标跟踪

从保护我们城市的监控系统到自动驾驶车辆在道路上行驶&#xff0c;目标跟踪已经成为计算机视觉中的一项基础技术。本文深入探讨了目标跟踪&#xff0c;探索了其基本原理、多样化的方法以及在现实世界中的应用。 什么是目标跟踪&#xff1f; 目标跟踪是深度学习在计算机视觉中广…

刷存在感,Excel转Protobuf/Json通用配置文件

使用场景 最近工作流中有将Excel转Protobuf作为配置文件的技术方案。具体实现是先定一个proto文件&#xff0c;再在一个对应excel表中定义对应字段&#xff0c;由策划在excel进行更改。proto文件可以生成对应语言的脚本&#xff0c;然后将excel转成对应protobuf的binary。 我…

SQLMap的Tamper脚本

由于SQL注入的影响过于广泛以及人们的网络安全意识普遍提升&#xff0c;网站往往 会针对SQL注入添加防SQL注入系统或者WAF 。这时&#xff0c;在渗透测试过程中就需要 绕过网站的安全防护系统。SQLMap是一款用来检测与利用SQL注入漏洞的免费 开源工具&#xff0c;不仅可以实现S…

Matomo 访问图形显示异常

近期我们的把 PHP 系统完全升级后&#xff0c;访问 Matomo 的站点有关访问的曲线无法显示。 出现的情况如下图&#xff1a; 我们可以看到图片中有关的访问曲线无法显示。 如果具体直接访问链接的话&#xff0c;会有下面的错误信息。 问题和解决 出现上面问题的原因是缺少 ph…

JavaScript 基础 - 第4天

函数 理解函数的封装特性&#xff0c;掌握函数的语法规则 声明和调用 函数可以把具有相同或相似逻辑的代码“包裹”起来&#xff0c;通过函数调用执行这些被“包裹”的代码逻辑&#xff0c;这么做的优势是有利于精简代码方便复用。 声明&#xff08;定义&#xff09; 声明&a…