代码随想录算法训练营第三十三天|509. 斐波那契数 ,● 70. 爬楼梯 , 746. 使用最小花费爬楼梯

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

代码随想录

视频:从此再也不怕动态规划了,动态规划解题方法论大曝光 !| 理论基础 |力扣刷题总结| 动态规划入门_哔哩哔哩_bilibili

 509. 斐波那契数 

代码随想录

视频:手把手带你入门动态规划 | LeetCode:509.斐波那契数_哔哩哔哩_bilibili

class Solution {public int fib(int n) {if (n <= 1) {return n;}int arr[] = new int[n + 1];arr[0] = 0;arr[1] = 1;for (int i = 2; i <= n; i++) {arr[i] = arr[i - 1] + arr[i - 2];}return arr[n];}
}

 70. 爬楼梯   

代码随想录

视频:带你学透动态规划-爬楼梯(对应力扣70.爬楼梯)| 动态规划经典入门题目_哔哩哔哩_bilibili

class Solution {public int climbStairs(int n) {//1.确定dp数组(dp table)以及下标的含义: dp[i]达到i阶有dp[i]种方法//2.确定递推公式:dp[i] = dp[i - 1] + dp[i - 2]//3.dp数组如何初始化: dp[0] = 1,(意义上说不通,代码跑的通) 所以,dp[1] = 1, dp[2] = 2//4.确定遍历顺序: 从前往后,因为后面要依赖前面的//5.举例推导dp数组: 查错int arr[] = new int[n];int[] dp = new int[n + 1];dp[0] = 1;dp[1] = 1;for (int i = 2; i <= n; i++) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];}
}

 746. 使用最小花费爬楼梯 

代码随想录

视频讲解:动态规划开更了!| LeetCode:746. 使用最小花费爬楼梯_哔哩哔哩_bilibili

class Solution {public int minCostClimbingStairs(int[] cost) {//(站上面不花钱,开始跳才花钱)// 确定dp数组(dp table)以及下标的含义: 到达i的位置所需要的花费dp[i]// 确定递推公式: dp[i] = dp[i - 1] + cost[i - 1] / dp[i - 2] + cost[i - 2]// dp数组如何初始化: dp[1] dp[0]// 确定遍历顺序: 从前到后,后面的元素是依据前面的元素推导的// 举例推导dp数组int arr[] = new int[cost.length + 1];arr[0] = 0;arr[1] = 0;for (int i = 2; i < arr.length; i++) {arr[i] = Math.min(arr[i - 1] + cost[i - 1], arr[i - 2] + cost[i - 2]);}return arr[cost.length]; }
}

解释cost.length + 1

  • 数组长度为cost.length:表示楼梯的每一步都有一个上升的成本。但是,这个数组不直接提供到达楼梯顶部(即最后一个台阶之后的位置)的成本。
  • 额外的+ 1位置:用于代表楼梯顶端的位置。这不是一个实际的台阶,而是一个达到所有台阶之后的终点位置。通过为这个终点位置分配一个状态,我们可以更简单地计算出达到这一点的最小成本。

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

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

相关文章

串口通讯(串行接口通讯)

文章目录 一、串行通讯是什么&#xff1f;二、种类三、并行与串行的区别四、通信方式总结 一、串行通讯是什么&#xff1f; 串行通讯是通信双方按位进行&#xff0c;遵守时序的一种通信方式。 串行通信中&#xff0c;将数据按位依次传输&#xff0c; 每位数据占据固定的时间长…

计算机图形学 实验

题目要求 1.1 实验一&#xff1a;图元的生成&#xff1a;直线、圆椭区域填充 你需要完成基本的图元生成算法&#xff0c;包括直线和椭圆。 在区域填充中&#xff0c;要求你对一个封闭图形进行填充。你需要绘制一个封 闭图形&#xff08;例如多边形&#xff09;&#xff0c;并选…

2024美赛数学建模问题A题思路模型分析 ——资源可用性和性别比例

虽然有些动物物种不存在通常的雄性或雌性&#xff0c;但大多数物种基本上都是雄性或雌性。虽然许多物种在出生时的性别比例为 1:1&#xff0c;但其他物种的性别比例却偏离了平均值。这就是所谓的适应性性别例变异。例如&#xff0c;美洲鳄孵卵巢的温度会影响其出生时的性别比例…

Hadoop3.x基础(3)- MapReduce

来源: B站尚硅谷 目录 MapReduce概述MapReduce定义MapReduce优缺点优点缺点 MapReduce核心思想MapReduce进程常用数据序列化类型MapReduce编程规范WordCount案例实操本地测试提交到集群测试 Hadoop序列化序列化概述自定义bean对象实现序列化接口&#xff08;Writable&#xff…

新手不会Git也能玩Github吗?

新手不会Git也能玩Github吗&#xff1f; 前言使用Github的准备步骤使用一种访问外网资源的方法&#xff08;这一步才是新手最容易&#xff09;注册账号 创建一个自己的仓库创建完仓库后的界面 搜索你想要的代码类型以搜索坦克大战为例以下载烟花代码为例 总结 前言 说到Github&…

人工智能福利站,初识人工智能,机器学习,第四课

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

程序小问-优先定义属性 而不是直接使用变量的主要原因?

在程序设计中&#xff0c;特别是在面向对象编程&#xff08;OOP&#xff09;中&#xff0c;定义属性&#xff08;也称为成员变量或实例变量&#xff09;而不是直接使用变量的主要原因有以下几点&#xff1a; **1 封装&#xff1a;**封装是面向对象编程的四大基本特性之一。通过…

SpringBoot实现轻量级接口反向代理、转发

目录 1、基本的对象1.1 配置类1.2 实体DTO1.3 路由代理拓展器1.4 请求对象 RestTemplate 2、核心转发代码3、暴露接口4、基础配置 前言&#xff1a;想实现一个轻量级的接口反向代理和转发的一个接口服务&#xff0c;可以通过这个服务做一些需要认证才能访问的接口给到前端使用&…

如何使用 Gzip 和 NGINX 来减小 Odoo 网站和后端的页面大小

Odoo 是现代最杰出、最可靠的 ERP 解决方案之一。它配备了广泛的功能和强大的社区。与其他 ERP 解决方案相比&#xff0c;Odoo 的最大优势之一是它配备了内置网站和电子商务解决方案&#xff0c;易于设置和部署。将所有会计、库存和订阅功能与网站集成&#xff0c;使 Odoo 不仅…

listagg、xmlagg、group_concat()函数用法

三种聚合函数 listagg函数XMLAGG函数GROUP_CONCAT()函数 listagg函数 listagg 是oracle数据库中的函数&#xff0c;可以使用指定连接符将字符串连接。 如有表 AREAS&#xff1a; CREATE TABLE AREAS (AREA_CODE VARCHAR(32) NULL COMMENT 地区编码,AREA_NAME VARCHAR(32) NUL…

我已经入驻多多

我已经入驻多多面包多平台 啦! 作为一位专注于帮助人们部署Python环境、探索人工智能和JavaEE技术&#xff0c;并创作计算机课程设计相关作品的创作者。我的作品类型涵盖了各种技术领域&#xff0c;旨在为学习者提供实用的资源和指导。 在CSDN拥有1100个粉丝的基础上&#x…

Spring源码研究导航

前言 这是我拜读源码的成果&#xff0c;大家好好珍惜&#xff0c;未来会有更多的更新。 目录 Spring的事件监听机制 BeanFactory创建过程&#xff08;基于Servlet&#xff09;

【学习心得】Django框架自带的密码加解密方法

一、前端代码 &#xff08;1&#xff09;保存原始密码&#xff08;以学生注册为例&#xff09; <form action"{% url student:register %}" method"post" id"form" >{% csrf_token %}<input type"text" name"stu_name…

arcgis javascript api4.x加载非公开或者私有的arcgis地图服务

需求&#xff1a; 加载arcgis没有公开或者私有的地图服务&#xff0c;同时还想实现加载时不弹出登录窗口 提示&#xff1a;​ 下述是针对独立的arcgis server&#xff0c;没有portal的应用场景&#xff1b; 如果有portal可以参考链接&#xff1a;https://mp.weixin.qq.com/s/W…

Spark streaming写入delta数据湖问题

问题1 一个batch运行时间过长 检查发现问题出现在merge写文件时间过长&#xff0c;一个batch本来应该是控制在1min。但项目上线到生产环境&#xff0c;检查spark streaming的job&#xff0c;发现数据在merge写入到数据湖时&#xff0c;往往超过1小时。继续排查&#xff0c;发现…

php工厂模式

在PHP中&#xff0c;工厂模式是一种创建型设计模式&#xff0c;用于将对象的创建过程封装到一个单独的类&#xff08;即工厂类&#xff09;中。通过使用工厂模式&#xff0c;客户端代码不需要知道如何实例化具体的产品类&#xff0c;而是直接与抽象接口或工厂进行交互&#xff…

MapStruct 使用

MapStruct最详细的使用教程&#xff0c;别在用BeanUtils.copyProperties () mapstruct使用和详解 项目背景 之前查看网上别人写的文章&#xff0c;很多都提到了BeanUtils(org.springframework.beans) 利用反射性能比较差。大家都推荐使用 MapStruct。因为这个组件使用 Java 原…

zookeeper 应该这样学

ZooKeeper 是一个分布式的&#xff0c;开放源码的分布式应用程序协调服务&#xff0c;是 Google 的 Chubby 一个开源的实现&#xff0c;是 Hadoop 和 Hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件&#xff0c;提供的功能包括&#xff1a;配置维护、域名服务、分…

C# 使用 MailKit 接收邮件(附demo)

C# 使用 MailKit 接收邮件&#xff08;附demo&#xff09; 介绍安装包&#xff08;依赖&#xff09;案例简单代码 获取附件核心代码完整代码 介绍一下POP3 介绍 MailKit 是一个开源的 C# 邮件处理库&#xff0c;用于在应用程序中发送和接收电子邮件。它提供了一个强大且易于使…

Redis核心技术与实战【学习笔记】 - 6.Redis 的统计操作处理

1.前言 在 Web 业务场景中&#xff0c;我们经常保存这样一种信息&#xff1a;一个 key 对应了一个数据集合。比如&#xff1a; 手机 APP 中的每天用户登录信息&#xff1a;一天对应一系列用户 ID。电商网站上商品的用户评论列表&#xff1a;一个商品对应了一些列的评论。用户…