给定一个非负整数数组,您最初位于该数组的第一个索引处。数组中的每个元素代表该位置的最大跳转长度。确定您是否能够达到最后一个索引。类似于第45题

Input: nums = [2,3,1,1,4]

Output: True

Input: [3,2,1,0,4]

Output: False

1. 初始化一个index=0用来判断能否蹦到最后一个位置

2. 遍历所有的数,如果当前的数加上当前的位置大于等于index(即目前可以跳到最远的位置),那就把index的值更新

if cur+nums[cur]>=index: index=cur+nums[cur]

3. 当index=cur时证明不能再往前跳了,就要结束循环。

if cur==index: break

class Solution:def canJump(self, nums: List[int]) -> bool:index=0for cur in range(len(nums)):if cur+nums[cur]>=index:index=cur+nums[cur]if cur==index:breakreturn index>=len(nums)-1

时间复杂度O(n),空间复杂度O(1),用时80ms,超过98.65%

Java

和Python思路相同, 当前位置的数和当前位置的和nums[i]+i表示是否能蹦到这个位置, 比如[3,2,1,0,4], i=3, nums[i]=0,就可以跳到这个位置, 设置index=nums[i]+i, 当index和当前的位置i相同时结束循环, 因为没有多余步数往前跳了即nums[i]=0

class Solution {public boolean canJump(int[] nums) {int index=0;for (int i=0; i < nums.length;i++) {int temp = i + nums[i];if (temp >= index) {index = temp;}if (i == index) {break;}}return index>= nums.length-1;}
}

时间复杂度O(n)

55. Jump Game蹦蹦游戏Python Java相关推荐

  1. 55. Jump Game(跳跃游戏)

    题目链接:https://leetcode.com/problems/jump-game/ 此题的思路同Leetcode45,jumpGame2. Leetcode 45 就是用一个值来保存最大右边界 ...

  2. 55/45 Jump Game 跳跃游戏

    55 Jump Game 思路:贪心算法,每次记录可以跳到的最远距离. class Solution { public:bool canJump(vector<int>& nums ...

  3. Python JAVA Solutions for Leetcode

    Python & JAVA Solutions for Leetcode (inspired by haoel's leetcode) Remember solutions are only ...

  4. 超级玛丽游戏python实现

    超级玛丽游戏python实现 import pygame # 将pygame库导入到python程序中 from pygame.locals import * # 导入pygame中的常量 impor ...

  5. 梯度下降原理及线性回归代码实现(python/java/c++)

    "梯度下降"顾名思义通过一步一步迭代逼近理想结果,当达到一定的精度或者超过迭代次数才退出,所以所获得的结果是一个近似值.在其他博客上面基本都有一个通俗的比喻:从山顶一步步下山.下面 ...

  6. 弹球游戏python代码含记分模式_python编写弹球游戏的实现代码

    用Blender制作一个兵乓球小游戏,要编写Python代码需要安装pygame 包没有面对困难的勇气,也就没有享受快乐的权利. python 怎么写双人弹球游戏最难过的事不是别人又得罪你了,而是你自 ...

  7. python篮球-基于Python/Java的人工智能篮球训练系统的制作方法

    本发明涉及信息技术领域,尤其涉及一种基于Python/Java的人工智能篮球训练系统. 背景技术: 人工智能的发展已经开始渗透到各行各业.经过发明人的研究和检索,发现作为篮球训练,已经有专利申请.其中 ...

  8. paip.文件目录操作uAPI php python java对照

    paip.文件目录操作uAPI php python java对照 chdir -- 改变目录 chroot -- 改变根目录 dir -- directory 类 closedir -- 关闭目录句 ...

  9. java 井字棋 人机_一个井字棋tictactoe游戏的java实现 | Soo Smart!

    这是一个井字棋游戏的java实现.摘录于stackoverflow. 游戏规则很简单,只要一方棋子在水平线,垂直线或者对角线任意一条线上排列成功即为获胜. 作者原先的代码存在着一些问题: 代码如下: ...

最新文章

  1. 计算机英语unit,计算机专业英语Unit 7
  2. 字节跳动面试官问我看过哪些源码,然后就没有然后了
  3. k8s创建pod的步骤
  4. python做一个考试系统_1218Python基于Django在线考试系统设计
  5. 【安卓开发 】Android初级开发(五)自定义View
  6. 建立远程ftp服务器,利用无线路由器建立FTP服务器
  7. php检查 session是否存在,检查sessionid已知的PHP会话是否处于活动状态
  8. 1.5 编程基础之循环控制 33 计算分数加减表达式的值 python
  9. Mybatis学习笔记(一) —— mybatis介绍
  10. 配置SQL Server 2008 R2 Reporting Services
  11. pid算法matlab仿真程序和c程序,pid算法matlab仿真程序和c程序.doc
  12. 对Laplace方程的学习——来自流沙公众号
  13. 【kvm虚拟化详解01】-虚拟化概述和主流方案介绍
  14. gif动态图批量加水印方法
  15. 把Excel里的折线图另存为图片
  16. 《幸福的勇气》笔记四——自立就是摆脱“自我”
  17. 智库说 | 杨宁:从城市管理走向城市治理 大数据将发挥更大作用
  18. 经典解析23 种设计模式
  19. Hystrix - 阻断器
  20. 红米手机4android os是木马怎么清除,红米Note4卡刷教程_红米Note4用recovery刷第三方系统包...

热门文章

  1. 用协程的方式下载英雄联盟的高清皮肤
  2. Array Optimization by Deque (cf)树状数组
  3. linux命令之磁盘清理
  4. 【深度学习】问:矩阵和向量相乘结果
  5. Python: argsort()函数使用说明记录
  6. vivado 除法器ip核的使用
  7. php爬虫爬取豆瓣电影top250内容
  8. java包间通信,我想开个程序员餐厅
  9. python十进制转换_Python 进制转换
  10. C#多线程之BackgroundWorker