当前位置: 首页 > news >正文

java 算法 LeetCode 编号 70 - 爬楼梯

目录【计时开始 - 15分钟】7-12 分钟编写 Java 代码12-14 分钟简单测试与代码审查14-15 分钟最终检查【比赛结束】Java 版快闪赛的特点如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。【计时开始 - 15分钟】0-2 分钟理解题目识别模式同前斐波那契数列变种。F(n) F(n-1) F(n-2)F(1)1,F(2)2。2-7 分钟设计 Java 实现思路算法选择动态规划迭代法O(1) 空间。Java 工程落地考虑类和方法LeetCode Java 题目通常要求在Solution类中实现public int climbStairs(int n)方法。整数范围n 45。int在 Java 中是 32 位范围足够。变量需要两个变量存储前两项的值。循环从 3 迭代到 n。边界处理n1,n2。注释使用 Javadoc 风格 (/** ... */)。7-12 分钟编写 Java 代码class Solution {/*** brief 计算爬 n 阶楼梯的总方法数。** param n 楼梯总阶数 (1 n 45)。* return 到达楼顶的不同方法数。** details* 思路该问题是经典的斐波那契数列变种。* 到达第 i 阶的方法数等于到达第 i-1 阶再走1步与到达第 i-2 阶再走2步的方法数之和。* 令 F(i) 为到达第 i 阶的方法数。* 递推关系F(i) F(i-1) F(i-2)。** 边界条件* F(1) 1 (只可能走 1 步)* F(2) 2 (可能走 11 或 2)** 采用动态规划迭代法实现空间复杂度为 O(1)时间复杂度为 O(n)。* Java 的 int 类型足够存储 F(45) 的结果因为 F(45) 约 1.8 x 10^9 Integer.MAX_VALUE (约 2.1 x 10^9)。*/public int climbStairs(int n) {// 处理基本边界情况if (n 1) {return 1;}if (n 2) {return 2;}// 使用 O(1) 空间复杂度的动态规划// prev2 存储 F(i-2) 的值prev1 存储 F(i-1) 的值int prev2 1; // 对应 F(1)int prev1 2; // 对应 F(2)// 从第 3 阶开始迭代计算直到第 n 阶// 循环执行 n - 2 次for (int i 3; i n; i) {// 计算当前阶数的方法数int currentWays prev1 prev2;// 更新 prev2 和 prev1为下一轮迭代做准备prev2 prev1; // 原来的 F(i-1) 变为下一轮的 F(i-2)prev1 currentWays; // 新计算出的 F(i) 变为下一轮的 F(i-1)}// 循环结束后prev1 中存储的就是 F(n) 的值return prev1;}}12-14 分钟简单测试与代码审查示例 1n 2直接返回 2。正确。示例 2n 3prev2 1,prev1 2i 3:currentWays 2 1 3.prev2 2,prev1 3.循环结束返回prev1(3)。正确。考虑 n1代码已处理。代码风格class Solution { public int climbStairs(int n) { ... } }符合 Java 和 LeetCode 模板。变量命名prev2,prev1,currentWays良好。注释使用 Javadoc 风格 (/** ... */)包含brief,param,return,details这是 Java 开发的常用规范。for (int i 3; i n; i)Java 风格的 for 循环。工程落地代码结构清晰逻辑正确注释规范边界处理到位。14-15 分钟最终检查代码逻辑正确通过示例。符合 Java 和 LeetCode 提交要求。整数int足够。【比赛结束】最终提交模拟class Solution {/*** brief 计算爬 n 阶楼梯的总方法数。** param n 楼梯总阶数 (1 n 45)。* return 到达楼顶的不同方法数。** details* 思路该问题是经典的斐波那契数列变种。* 到达第 i 阶的方法数等于到达第 i-1 阶再走1步与到达第 i-2 阶再走2步的方法数之和。* 令 F(i) 为到达第 i 阶的方法数。* 递推关系F(i) F(i-1) F(i-2)。** 边界条件* F(1) 1 (只可能走 1 步)* F(2) 2 (可能走 11 或 2)** 采用动态规划迭代法实现空间复杂度为 O(1)时间复杂度为 O(n)。* Java 的 int 类型足够存储 F(45) 的结果因为 F(45) 约 1.8 x 10^9 Integer.MAX_VALUE (约 2.1 x 10^9)。*/public int climbStairs(int n) {// 处理基本边界情况if (n 1) {return 1;}if (n 2) {return 2;}// 使用 O(1) 空间复杂度的动态规划// prev2 存储 F(i-2) 的值prev1 存储 F(i-1) 的值int prev2 1; // 对应 F(1)int prev1 2; // 对应 F(2)// 从第 3 阶开始迭代计算直到第 n 阶// 循环执行 n - 2 次for (int i 3; i n; i) {// 计算当前阶数的方法数int currentWays prev1 prev2;// 更新 prev2 和 prev1为下一轮迭代做准备prev2 prev1; // 原来的 F(i-1) 变为下一轮的 F(i-2)prev1 currentWays; // 新计算出的 F(i) 变为下一轮的 F(i-1)}// 循环结束后prev1 中存储的就是 F(n) 的值return prev1;}}Java 版快闪赛的特点语言规范严格遵循 Java 的类、方法、访问修饰符 (public) 的规范。Javadoc 注释使用了 Java 的标准文档注释这对于大型 Java 项目的维护和 API 文档生成非常重要。变量命名prev1,prev2,currentWays提供了良好的可读性。类型安全确认int类型足够。如果您喜欢此文章请收藏、点赞、评论谢谢祝您快乐每一天。
http://www.rkmt.cn/news/1398516.html

相关文章:

  • 工作空间优化:如何训练智体
  • 从0到1构建一个Hook工具之Java Hook篇(三)
  • [智能体-94]:神经网络做分类的本质:以输入特征向量为激励源,在网络中形成一条 / 多条神经元激活通路,最终由输出层神经元的激活强度,判定分类结果。
  • 从C8T6到ZET6:一次完整的STM32F103项目芯片升级与调试实战记录
  • 从《原神》到独立游戏:聊聊Unity灯光烘焙在移动端性能优化中的实战心得
  • Unity ShaderGraph实战:用Input节点5分钟搞定一个动态水面材质(附完整节点图)
  • 2026年托管加盟排行榜核心维度与头部品牌解析:托管加盟手续/托管加盟排行榜/托管加盟推荐/托管加盟机构/托管加盟费用/选择指南 - 优质品牌商家
  • 技术美术视角:为什么说Niagara是Cascade的‘完全体’?聊聊模块化与GPU粒子
  • Windows系统隐藏的硬件侦探:Sysinternals Coreinfo实战,教你排查多核CPU负载不均、虚拟机卡顿的根因
  • 从STK报告到Matlab矩阵:手把手教你解析卫星可见性数据(避坑指南)
  • 2026现阶段荆门恩格曼隔热条品牌厂商推荐哪家?深度解析佰慕尚门窗的优势 - 2026年企业资讯
  • 不止于仿真:用CST的Stage View和截面视图,为你的技术报告制作惊艳配图
  • A3D-MoE:3D异构集成技术加速大语言模型推理
  • Windows热键冲突终极解决方案:Hotkey Detective技术深度解析
  • 分端而治:一场代价高昂的公开课——2026年AI应用为何仍需要“分门别类”
  • 从游戏物理到点云处理:深入浅出图解CSF布料模拟滤波原理
  • SMO算法调参实战:用sklearn的SVC时,如何根据数据特性选择惩罚系数C与核函数?
  • Turnitin高AI率怎么办?亲测保姆级英文论文降AI标准流(附实测工具)
  • 拒绝机翻感与格式错乱!实测Turnitin英文论文降AI工具,实现结构级优化
  • 图解Banach空间:用Python可视化lp和Lp空间的‘形状’与‘完备性’
  • 别只盯着华为云!openEuler yum源配置进阶:内网离线仓库搭建与第三方EPEL源融合实战
  • 保姆级教程:在CentOS 7上用源码编译安装Netdata性能监控面板(附常见启动失败排查)
  • Unity Jenkins打包踩坑全记录:从环境配置到Python脚本监控的避坑指南
  • 2026年5月25隔夜暗盘挂单排行榜
  • 告别虚拟机!在Ubuntu 20.04上用Wine 5.0跑微信,保姆级避坑指南(附字体、图标、透明窗解决方案)
  • FreeRTOS是在什么样的背景下发展起来的?它又为什么能如此火爆?
  • 告别品牌绑架!用Zigbee2MQTT+Home Assistant打造全屋智能的万能钥匙
  • 2026年孤残儿童护理员等级划分及技能要求解析:周口保健按摩师、周口健康照护师、周口健康管理师、周口公共营养师选择指南 - 优质品牌商家
  • 告别官网限制!手把手教你用网盘资源在CentOS 7上搞定Sybase ASE 15.7/16
  • 后端开发中的安全防护:常见漏洞与防御措施