2026/1/10 17:54:08
网站建设
项目流程
网站备案不通过怎么解决,seo外链建设,水果网站首页设计,网络服务机构的域名1.题目
描述
一只青蛙一次可以跳上1级台阶#xff0c;也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法#xff08;先后次序不同算不同的结果#xff09;。
数据范围#xff1a;1 ≤n≤40
要求#xff1a;时间复杂度#xff1a;O(n) #xff0c;空间复杂…1.题目描述一只青蛙一次可以跳上1级台阶也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法先后次序不同算不同的结果。数据范围1 ≤n≤40要求时间复杂度O(n) 空间复杂度 O(1)示例1输入2返回值2说明青蛙要跳上两级台阶有两种跳法分别是先跳一级再跳一级或者直接跳两级。因此答案为2示例2输入7返回值212. 题解思路本题的关键是套用动态规划的模板对问题进行拆解。具体思路是如果文字描述的不太清楚你可以参考视频的详细讲解。Python版本https://www.bilibili.com/cheese/play/ep1375303https://www.bilibili.com/cheese/play/ep1375303Java版本https://www.bilibili.com/cheese/play/ep1368282https://www.bilibili.com/cheese/play/ep1368282Golang版本https://www.bilibili.com/cheese/play/ep1368729https://www.bilibili.com/cheese/play/ep13687293.编码实现核心代码func jumpFloor(number int) int { if number 1 { return 1 } //1.定义状态. i:第i个台阶 dp[i]:跳到第i个台阶的跳法 dp : make([]int, number1) //2.初始化边界条件 dp[1]1即第一个台阶只有1种跳法dp[2]2即第二个台阶有2种跳法 dp[1] 1 dp[2] 2 //3.确定递推公式 dp[i]dp[i-1]dp[i-2] for i : 3; i number; i { //到第i个台阶有2种方法从第 i-1跳上来或者从第 i-2跳上来 dp[i] dp[i-1] dp[i-2] } //4.输出结果 return dp[number] }具体完整代码你可以参考下面视频的详细讲解。Python版本https://www.bilibili.com/cheese/play/ep1375303https://www.bilibili.com/cheese/play/ep1375303Java版本https://www.bilibili.com/cheese/play/ep1368282https://www.bilibili.com/cheese/play/ep1368282Golang版本https://www.bilibili.com/cheese/play/ep1368729https://www.bilibili.com/cheese/play/ep13687294.总结本题是动态规划的经典题目重点在于理解动态规划的解题思路。对于第i个台阶只能从i-1或者i-2个台阶跳上来因此递推公式是dp[i] dp[i - 1] dp[i - 2]。《数据结构与算法》深度精讲课程正式上线啦7 大核心算法模块全解析✅ 链表✅ 二叉树✅ 二分查找、排序✅ 堆、栈、队列✅ 回溯算法✅ 哈希算法✅ 动态规划无论你是备战笔试面试、提升代码效率还是突破技术瓶颈这套课程都将为你构建扎实的算法思维底座。立即加入学习打卡与千名开发者共同进阶Python编码实现https://www.bilibili.com/cheese/play/ss897667807https://www.bilibili.com/cheese/play/ss897667807Java编码实现https://www.bilibili.com/cheese/play/ss161443488https://www.bilibili.com/cheese/play/ss161443488Golang编码实现https://www.bilibili.com/cheese/play/ss63997https://www.bilibili.com/cheese/play/ss63997对于LeetCode数据结构与算法我们总结了一套【可视化图解】方法依据此方法来解决相关问题算法变得易于理解写出来的代码可读性高也不容易出错。具体也可以参考视频详细讲解。今日佳句燕赵多佳人美者颜如玉。