55. Jump Game蹦蹦游戏Python Java
给定一个非负整数数组,您最初位于该数组的第一个索引处。数组中的每个元素代表该位置的最大跳转长度。确定您是否能够达到最后一个索引。类似于第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相关推荐
- 55. Jump Game(跳跃游戏)
题目链接:https://leetcode.com/problems/jump-game/ 此题的思路同Leetcode45,jumpGame2. Leetcode 45 就是用一个值来保存最大右边界 ...
- 55/45 Jump Game 跳跃游戏
55 Jump Game 思路:贪心算法,每次记录可以跳到的最远距离. class Solution { public:bool canJump(vector<int>& nums ...
- Python JAVA Solutions for Leetcode
Python & JAVA Solutions for Leetcode (inspired by haoel's leetcode) Remember solutions are only ...
- 超级玛丽游戏python实现
超级玛丽游戏python实现 import pygame # 将pygame库导入到python程序中 from pygame.locals import * # 导入pygame中的常量 impor ...
- 梯度下降原理及线性回归代码实现(python/java/c++)
"梯度下降"顾名思义通过一步一步迭代逼近理想结果,当达到一定的精度或者超过迭代次数才退出,所以所获得的结果是一个近似值.在其他博客上面基本都有一个通俗的比喻:从山顶一步步下山.下面 ...
- 弹球游戏python代码含记分模式_python编写弹球游戏的实现代码
用Blender制作一个兵乓球小游戏,要编写Python代码需要安装pygame 包没有面对困难的勇气,也就没有享受快乐的权利. python 怎么写双人弹球游戏最难过的事不是别人又得罪你了,而是你自 ...
- python篮球-基于Python/Java的人工智能篮球训练系统的制作方法
本发明涉及信息技术领域,尤其涉及一种基于Python/Java的人工智能篮球训练系统. 背景技术: 人工智能的发展已经开始渗透到各行各业.经过发明人的研究和检索,发现作为篮球训练,已经有专利申请.其中 ...
- paip.文件目录操作uAPI php python java对照
paip.文件目录操作uAPI php python java对照 chdir -- 改变目录 chroot -- 改变根目录 dir -- directory 类 closedir -- 关闭目录句 ...
- java 井字棋 人机_一个井字棋tictactoe游戏的java实现 | Soo Smart!
这是一个井字棋游戏的java实现.摘录于stackoverflow. 游戏规则很简单,只要一方棋子在水平线,垂直线或者对角线任意一条线上排列成功即为获胜. 作者原先的代码存在着一些问题: 代码如下: ...
最新文章
- 计算机英语unit,计算机专业英语Unit 7
- 字节跳动面试官问我看过哪些源码,然后就没有然后了
- k8s创建pod的步骤
- python做一个考试系统_1218Python基于Django在线考试系统设计
- 【安卓开发 】Android初级开发(五)自定义View
- 建立远程ftp服务器,利用无线路由器建立FTP服务器
- php检查 session是否存在,检查sessionid已知的PHP会话是否处于活动状态
- 1.5 编程基础之循环控制 33 计算分数加减表达式的值 python
- Mybatis学习笔记(一) —— mybatis介绍
- 配置SQL Server 2008 R2 Reporting Services
- pid算法matlab仿真程序和c程序,pid算法matlab仿真程序和c程序.doc
- 对Laplace方程的学习——来自流沙公众号
- 【kvm虚拟化详解01】-虚拟化概述和主流方案介绍
- gif动态图批量加水印方法
- 把Excel里的折线图另存为图片
- 《幸福的勇气》笔记四——自立就是摆脱“自我”
- 智库说 | 杨宁:从城市管理走向城市治理 大数据将发挥更大作用
- 经典解析23 种设计模式
- Hystrix - 阻断器
- 红米手机4android os是木马怎么清除,红米Note4卡刷教程_红米Note4用recovery刷第三方系统包...