文章目录

  • 题目描述
  • 解法 & 思路

题目描述

  • 可以用动态规划来做,dp[i]代表以第i个下标做起点,可以到达的最远的地方,从后往前走,最后dp[0] >= len-1说明可达。
  • 不过我的dp相对于贪心法慢了不少(400+ms)

解法 & 思路

  • 贪心法,从前往后走
  • 维护一个 far 变量,代表到目前为止可达的最远的地方
  • 在从前往后的循环中,far变量会不断更新,既是一个结果,又是一个循环结束的条件。
  • 比如[2,3,1,1,4]的例子,第一次循环的时候,nums[0] = 2,那么far += 2,此时
    far = 2,就代表当前可以通过nums[0]走到nums[2],接下来就可以再通过nums[1],nums[2]来对far进行更新(如果这两个内容可以让far走得更远的话)
class Solution {public boolean canJump(int[] nums) {// 当前可达最远距离int far = 0;// 注意,循环结束条件是 <= far,也就是根据更新来获取当前可达最远距离,并且由此走到各个路径进行判断// 时间复杂度O(n),一趟走完for(int i = 0;i <= far;i++) {int temp = i + nums[i];if(temp >= nums.length - 1) {return true;}far = Math.max(far,temp);}return false;}
}

【LeetCode笔记】55. 跳跃游戏(Java、贪心法)相关推荐

  1. Leetcode刷题笔记 55. 跳跃游戏

    55. 跳跃游戏 时间:2020年12月1日 知识点:贪心 题目链接:https://leetcode-cn.com/problems/jump-game/ 题目 给定一个非负整数数组,你最初位于数组 ...

  2. LeetCode 55. 跳跃游戏(贪心)

    1. 题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1:输入: [2,3,1,1,4] 输出: ...

  3. leetcode:55. 跳跃游戏【经典贪心】

    分析 维护当前走到的位置,以及当前能走的最大区间内下一次走到的最远位置maxPos 当前能走的位置就是[cur, maxPos]但是在走的过程中,边走边看下一次的maxPos,然后当cur走到上一个m ...

  4. 【LeetCode】55.跳跃游戏

    题目 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 题解 方法一:回溯(暴力法递归) 算法 代码 class ...

  5. 【LeetCode】55. 跳跃游戏 (JavaScript)

    原题 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个下标. 示例 1: 输入:nums = [2,3 ...

  6. 《LeetCode力扣练习》第55题 跳跃游戏 Java

    <LeetCode力扣练习>第55题 跳跃游戏 Java 一.资源 题目: 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该位置可以跳跃的最大 ...

  7. Java实现 LeetCode 55 跳跃游戏

    55. 跳跃游戏 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 判断你是否能够到达最后一个位置. 示例 1: 输入: [2,3,1,1,4] ...

  8. 代码随想录算法训练营第三十二天_第八章_贪心算法 | 122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II

    LeetCode 122.买卖股票的最佳时机II 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格.设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票 ...

  9. LeetCode55跳跃游戏//力扣55跳跃游戏(贪心)

    LeetCode55跳跃游戏//力扣55跳跃游戏(贪心) 来源:力扣(LeetCode) 链接:题目跳转 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 . 数组中的每个元素代表你在该 ...

  10. LeetCode—55.跳跃游戏(Jump Game)——分析及代码(C++)

    LeetCode-55.跳跃游戏[Jump Game]--分析及代码[C++] 一.题目 二.分析及代码 1. 贪心 (1)思路 (2)代码(简洁) (3)代码(高效) (4)结果 三.其他 一.题目 ...

最新文章

  1. 实战:手把手教你实现用语音智能控制电脑 | 附完整代码
  2. vc++ 将可执行文件链接到 DLL
  3. pandas数据存储于读取
  4. matlab linspace
  5. 东北农业大学大学计算机基础作业答案,大学计算机基础实践教学改革的研究
  6. Linux Shell 操作命令 ls
  7. 创建目录_Word创建自动目录,你会了吗?
  8. DSP之时钟与定时器之二通用定时器
  9. 解决From 192.168.1.10: icmp_seq=1 Redirect Network(New nexthop: 192.168.1.1)问题
  10. GPS广播星历和精密星历的下载
  11. python支持复数类型以下说法错误的是_关于Python的数字类型,以下选项中描述错误的是...
  12. markdown文本居中
  13. JAVA编程语言基础第六章
  14. Java 他们每人单独过桥的时间是_java实现 n人过桥问题
  15. 西门子1200plc485轮询读写28个测试仪表,包括plc程序和触摸屏程序,仪表485通讯协议说明书
  16. n8_Visualizing Multivariate_sns_3D plot_matplotlib.dates_mpl_finance_aapl stock_EMA_RSI_Bollinger
  17. 前端入门教程(四)head内常用标签与body内常用标签
  18. 真相为何竟如此难得 -- 《中国健康调查报告》
  19. rtx2060为什么叫智商卡_八款RTX2060简单点评,谁是丐中丐,谁又是丐帮帮主
  20. Linux awk 命令详解

热门文章

  1. python url中传递中文_Python编程:URL网址链接中的中文编码与解码
  2. 关于tensorflow的碎片
  3. 中柏平板u盘启动_中柏电脑如何设置BIOS U盘启动
  4. php修改找不到数据类型,php – 在$_POST中找不到输入类型=图像值
  5. 怎样把java项目转换成web项目_Eclipse中将Java项目转换成Web项目的方法
  6. c语言注释参与程序设计的编译,提高C语言程序设计教学的有益探索
  7. mysql8导出文件_windows下 Mysql 8.0.x 数据库简单的导出和导入!!!
  8. Python中矩阵库Numpy基本操作
  9. Hack.Chat 在浏览器里快速建立简单、随用即丢线上聊天室,无须下载安装软体
  10. Ios 12 linux,苹果发布iOS 12.4.1,以修补越狱漏洞