代码随想录训练营day38
题目一:斐波那契数
力扣题目链接
题目描述:斐波那契数 (通常用 F(n)
表示)形成的序列称为 斐波那契数列 。该数列由 0
和 1
开始,后面的每一项数字都是前面两项数字的和。
给定 n
,请计算 F(n)
思路分析:(视频指路)
动归五步曲:
- 确定dp数组以及下标的含义
- 确定递推公式
- dp数组如何初始化
- 确定遍历顺序
- 举例推导dp数组
解法:
class Solution {public int fib(int n) {if (n < 2) return n;int a = 0, b = 1, c = 0;for (int i = 1; i < n; i++) {c = a + b;a = b;b = c;}return c;}
}
题目二:爬楼梯
力扣题目链接
题目描述:
假设你正在爬楼梯。需要 n
阶你才能到达楼顶。
每次你可以爬 1
或 2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
思路分析:(代码随想录)
可以举例推导,发现和斐波那契数列是一个解法,也就是动归五部曲
解法:
class Solution {public int climbStairs(int n) {if(n <= 2) return n;int a = 1, b = 2, sum = 0;for(int i = 3; i <= n; i++){sum = a + b; // f(i - 1) + f(i - 2)a = b; // 记录f(i - 1),即下一轮的f(i - 2)b = sum; // 记录f(i),即下一轮的f(i - 1)}return b;}
}
题目三:使用最少花费爬楼梯
力扣题目链接
题目描述:
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。
请你计算并返回达到楼梯顶部的最低花费
思路分析:力扣思路
用dp[i] 表示:想要从第 i 个台阶继续往上走,我们所需的最低花费。那么我们如果想求到顶上的最低花费,那我们就要找到从最后一格楼梯向上走的最低花费 和 从倒数第二个楼梯向上走的花费,取他们两个的最小值即可。
解法:
class Solution {public int minCostClimbingStairs(int[] cost) {int dp0 = cost[0];int dp1 = cost[1];for(int i = 2;i < cost.length; i++){int temp = Math.min(dp1 ,dp0) + cost[i];dp0 = dp1;dp1 = temp;}return Math.min(dp0,dp1);}
}
代码随想录训练营day38相关推荐
- 【代码随想录训练营】Day43-动态规划
代码随想录训练营 Day43 今日任务 1049.最后一块石头的重量Ⅱ 494.目标和 474.一和零 语言:Java 1049. 最后一块石头的重量Ⅱ 链接:https://leetcode.cn/ ...
- 代码随想录训练营day8
目录 题目一:反转字符串 解法一:数值交换 解法二:位运算 题目二:反转字符串|| 题目三:替换空格 解法一:双指针 解法二:使用额外空间 题目四:翻转字符串里的单词 解法一: 解法二:纯属娱乐 题目 ...
- 【代码随想录训练营】【Day14】第六章|二叉树|理论基础|递归遍历|迭代遍历|统一迭代
理论基础 二叉树的定义形式有:节点指针和数组 在数组中,父节点的下标为i,那么其左孩子的下标即i*2+1,右孩子的下标即为i*2+2 二叉树的常见遍历形式有:前序遍历.后序遍历.中序遍历和层序遍历 前 ...
- 代码随想录训练营day56
题目一:两个字符串的删除操作 力扣题目链接 题目描述: 给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数. 每步 可以删除任意一个字符串中的一个字 ...
- 代码随想录训练营day57
题目一:回文子串 力扣题目链接 题目描述: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目. 回文字符串 是正着读和倒过来读一样的字符串. 子字符串 是字符串中的由连续字符组成的一 ...
- 代码随想录训练营day53
题目一:最长公共子序列 力扣题目链接 题目描述: 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度.如果不存在 公共子序列 ,返回 0 . 一个字符串的 子序列 ...
- 代码随想录训练营day55
题目一:判断子序列 力扣题目链接 题目描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符 ...
- 代码随想录训练营day52
题目一:最长上升子序列 力扣题目链接 题目描述: 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度. 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序. ...
- 代码随想录训练营day48
题目一:打家劫舍 力扣题目链接 题目描述: 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上 ...
最新文章
- 关于Quartz.NET作业调度框架的一点小小的封装,实现伪AOP写LOG功能
- 计算机视觉经典论文整理
- 5 压缩上传图片_推荐一个干净纯粹的网站,专注图片压缩、pdf相关操作
- mongodb启动不能锁定_使用MongoDB进行乐观锁定重试
- java面试题10 牛客:以下可以正确获取结果集的有
- python3创建类_python3 metaclass--创建类的过程分析
- Spring MVC拦截器(Interceptor)的配置及使用
- 易天ETU-link 100G QSFP28光模块系列资料
- 计算机基础一级证exlse函数,原创—EXCEL自定义函数完成CPK/PPK/CP/PP/CPU/CPL等的计算...
- Google去广告——Adblock插件使用
- ubnt虚拟服务器端口转发,ubnt详细设置教程
- 手机变Android麦克风,手机变麦克风
- 2 电感耦合方式的射频前端
- Axure 基础教程
- 计算机新建文件的方法,电脑新建文件夹怎么弄,新建文件夹的方法有几种-
- 网页 浏览器内核 Web标准(七七)
- 尝试解析DDS格式纹理文件的基本信息(不包括图像数据)
- win7系统盘瘦身四大招:
- 2021 年 React 的 5 大富文本编辑器
- CSS 控制边框样式