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

LeetCode第55题 - 跳跃游戏

题目

解答一

class Solution {   public boolean canJump(int[] nums) {if (nums == null || nums.length == 0) {return false;}if (nums[0] == 0 && nums.length == 1) {return true;}return canJump(nums, 0);}public boolean canJump(int[] nums, int index) {if (index > nums.length - 1) {return false;}if (nums[index] == 0) {return false;}if (nums[index] + index >= nums.length - 1) {return true;}// for (int i = 1; i <= nums[index]; ++i) {for (int i = nums[index]; i > 0; --i) {if (canJump(nums, index + i)) {return true;}}return false;}
}

解答二

class Solution {public boolean canJump(int[] nums) {int max = 0;for (int i = 0; i < nums.length && i <= max; i++) {max = Math.max(max, i + nums[i]);if (max >= nums.length - 1) {return true;}}return false;}
}

总结
解答一使用递归,可以解决问题,但当输入规模增大时,可能出现递归过多、栈溢出的现象,同时效率也不满足要求。
解决二使用贪心算法,简单、直接、暴力、有效。变量max的使用,值得深入理解。

http://www.dtcms.com/a/344465.html

相关文章:

  • GitHub 热榜项目 - 日榜(2025-08-22)
  • 解析三品汽车零部件PLM系统解决方案:如何助力行业解决研发管理难题
  • Curity CTO 深度解析:AI 智能体正让我们“梦游”般陷入安全危机
  • 车载中控:汽车的数字大脑与交互核心
  • 第五章:Leaflet 进阶:高德地图交互与事件处理全解析
  • git回滚相关命令指南
  • 机器学习概述:从零开始理解人工智能的核心技术
  • 树莓派安装pyqt5 opencv等库一些问题
  • 力扣面试150(63/150)
  • C++显示类型转换运算符static_cast使用指南
  • 偶现型Bug处理方法---用系统方法对抗随机性
  • 一、Python IDLE安装(python官网下的环境安装)
  • ArrayList vs LinkedList:底层原理与实战选择指南
  • 企业设备系统选型:功能适配度分析
  • Java多线程面试题二
  • 视频清晰度:静态码率比动态码率更优秀吗?
  • 从零搭建 React 工程化项目
  • 本地通过跳板机连接无公网IP的内网服务器
  • 哈尔滨云前沿服务器托管的优势
  • 【Linux仓库】进程的“夺舍”与“飞升”:exec 驱动的应用现代化部署流水线
  • 前端github-workflows部署腾讯云轻量服务器
  • 学云计算还是网络,选哪个好?
  • Linux:网络层IP协议
  • alicloud 阿里云有哪些日志 审计日志
  • css的white-space: pre
  • Docker 命令大全
  • VsCode 上的Opencv(C++)环境配置(Linux)
  • 四种方法把 Proxy 对象代理数组处理成普通数组
  • URP+Unistorm5.3.0 -> webGL天空黑屏的处理
  • 如何精准高效地比对两份合同的差异?