描写叙述:

Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Your goal is to reach the last index in the minimum number of jumps.
For example:
Given array A = [2,3,1,1,4]
The minimum number of jumps to reach the last index is 2. (Jump 1 step from index 0 to 1, then 3 steps to the last index.)

思路:

1.Jump Game思路:和求Max Subarray类似,维护一个当前元素能够跳至的最大值,每循环一次更新reach=Math.max(nums[i]+1,reach),当i>reach或i>=nums.length的时候循环终止。最后看循环是否到达了最后,到达最后则返回true,否则,返回false.

2.和Jump Game不同的是,Jump Game II 让求的是跳过全部的元素至少须要几步。这须要维护一个局部变量edge为上一个reach,当i<=reach时,每次仍然通过Math.max(nums[i]+i,reach)获得最大的reach,当i>edge时,仅仅须要更新一个edge为当前reach就可以。并将minStep赋值为minStep+1。最后,当到达最后一个元素的时候说明能够到达最后,范围最少的步骤就可以。

代码:

public int jump(int[] nums){int edge=0,reach=0;int minStep=0,i=0;for(;i<nums.length&&i<=reach;i++){if(edge<i){edge=reach;minStep=minStep+1;}reach=Math.max(nums[i]+i, reach);}if(i==nums.length)return minStep;return -1;}

转载于:https://www.cnblogs.com/brucemengbm/p/6909980.html

leetcode_Jump Game II相关推荐

  1. 剑指offer:面试题32 - II. 从上到下打印二叉树 II

    题目:从上到下打印二叉树 II 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3    / \ ...

  2. 剑指offer:面试题14- II. 剪绳子 II

    题目:剪绳子 II 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] .请问 k[0]* ...

  3. 递归/回溯:Combination Sum II数组之和

    问题如下: 已知一组数(其中有重复元素),求这组数可以组成的所有子集中,子 集中的各个元素和为整数target的子集,结果中无重复的子集. 例如: nums[] = [10, 1, 2, 7, 6, ...

  4. 递归/回溯:Subsets II求子集(有重复元素)

    上一篇描述了针对数组中没有重复元素进行子集的求取过程递归/回溯:subsets求子集 但是当出现如下数组时: 例如: nums[] = [2, 1, 2, 2] 结果为: [[], [1], [1,2 ...

  5. HDU 2080 夹角有多大II

    夹角有多大II Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  6. 了解ES6 The Dope Way Part II:Arrow功能和'this'关键字

    by Mariya Diminsky 通过玛丽亚·迪明斯基(Mariya Diminsky) 了解ES6 The Dope Way Part II:Arrow功能和'this'关键字 (Learn E ...

  7. Leetcode 213.大家劫舍II

    打家劫舍II 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金.这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的.同时,相邻的房屋装有相互连通的防盗系统,如果两 ...

  8. 用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (一)

    一,概述 用Altera的话来讲,timequest timing analyzer是一个功能强大的,ASIC-style的时序分析工具.采用工业标准--SDC(synopsys design con ...

  9. 数据结构与算法:04 C#面向对象设计 II

    04 C#面向对象设计 II 知识结构: 5.属性 例1:属性概念的引入(问题) public class Animal {public int Age;public double Weight;pu ...

最新文章

  1. 按摩加快肌肉修复有科学依据了,哈佛大学研究成果登Science子刊
  2. 添加日志文件组与日志文件成员
  3. 【LeetCode】169. Majority Element
  4. Learning Perl chapter 4 练习题
  5. 基于智能的网络空间安全防御
  6. Qt文档阅读笔记-QtWebApp官方解析与实例(使用QtWebApp搭建HTTP服务器)
  7. android动画效果 --- 设置activity 跳转动画
  8. vsftpd 创建虚拟用户
  9. 干货 | 豆子科技首席架构师钟声:Java的纯真年代
  10. js之如何计算两个时间的时间差
  11. 公网IP和内网IP如何分辨?
  12. 特斯拉 CEO 马斯克:年轻人成功的秘诀,只有这 5 点
  13. 【GAMES101现代计算机图形学入门笔记】Lec05 光栅化1(三角形)
  14. reflections歌词翻译_Reflections 歌词
  15. oracle11g和toad,plsql、toad应用于oracle11g64位的方法
  16. static char x [ ]=“12345”; 为什么比 static char y[ ]={‘1’,‘2’,‘3’,‘4’,‘5’};长?
  17. LXC的Python学习笔记
  18. rust哪个护甲高_《废土2》全部武器护甲资料及代码
  19. 信息系统基本知识(六)
  20. arm oe linux gnueabi 系统,交叉编译移植openssl

热门文章

  1. 利用Eclipse/MyEclipse 实体类生成.hbm.xml文件
  2. JS-String方法
  3. 二分法与简单遍历的效率比较
  4. 软件架构最佳实践和案例分析
  5. golang中的redigo
  6. svn: E200009
  7. linux shell中21的含义
  8. SSL,SSH,OpenSSL,OpenSSH,HTTPS的区别
  9. sizeof 是关键字不是函数!使用sizeof需要注意?
  10. javaweb:servlet的多线程同步问题