给定一个数组,数组中的数值表示在当前位置能够向前跳动的最大距离。
 
求解出从下标为0开始到下标到数组最后一个所需要的最少跳动次数!
 
1、当数组为空或者数组长度等于1时,不需要跳动,因此返回0 否则初始化step=1
2、初始化left=0 right = nums[0] 当left<=right时进入循环体中。 
3、从第i=0开始,如果当前跳动距离大于数组长度则返回step
4、从left开始并且初始化为0 进行遍历,区间为[0 ,  right]  不断更新max的数值  max = Math.max( max ,  left + nums[left]) 
注意上面是left+nums[left]  这里直接表示将该位置假设移动到i==0下标时 ,相对于i==0能够向前移动的距离
5、如果max的数值大于当前的right值,则更新left=right ; right=max ;step++
6、判断left和right的大小关系。重复上述的3、4、5操作
 
参考代码: 
package leetcode_50;

/***
*
* @author pengfei_zheng
* 给定数组,找出最小跳动选择
*/
public class Solution45 {
public int jump(int[] nums) {
if (nums == null || nums.length < 2) {
return 0;
}
int left = 0;
int right = nums[0];
int step = 1;
while (left <= right) {
if (right >= nums.length - 1) {
return step;
}
int max = Integer.MIN_VALUE;
for (; left <= right; left++) {
max = Math.max(max, left + nums[left]);
}
if (max > right) {
left = right;
right = max;
step++;
}
}
return -1;
}
}

LeetCode 45 Jump Game II(按照数组进行移动)的更多相关文章

  1. Leetcode 45. Jump Game II(贪心)

    45. Jump Game II 题目链接:https://leetcode.com/problems/jump-game-ii/ Description: Given an array of non ...

  2. [leetcode]45. Jump Game II青蛙跳(跳到终点最小步数)

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  3. leetCode 45.Jump Game II (跳跃游戏) 解题思路和方法

    Jump Game II Given an array of non-negative integers, you are initially positioned at the first inde ...

  4. [LeetCode] 45. Jump Game II 跳跃游戏 II

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  5. [LeetCode] 45. Jump Game II 跳跃游戏之二

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  6. [LeetCode] 45. Jump Game II 解题思路

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  7. [leetcode] 45. Jump Game II(hard)

    原题 题意: 是Jump Game的衍生题(题解),题意求跳到最后一格所需最少步数,(默认所测数据永远可以跳到最后一格). 思路: 利用贪心,遍历数组,记录在每一步可跳跃到的最大区域. 1.当前步数 ...

  8. [LeetCode] 45. Jump game II ☆☆☆☆☆(跳跃游戏 2)

    https://leetcode-cn.com/problems/jump-game-ii/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-b ...

  9. Leetcode 45. Jump Game II

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

随机推荐

  1. 正則表達式re中的贪心算法和非贪心算法 在python中的应用

    之前写了一篇有关正則表達式的文章.主要是介绍了正則表達式中通配符 转义字符 字符集 选择符和子模式 可选项和反复子模式 字符串的開始和结尾 ,有兴趣的能够查看博客内容. 此文章主要内容将要介绍re中的 ...

  2. [转]Apache 监听端口失败,selinux惹的祸

    原文在此 CentOS 下启动Httpd 失败,报 (13)Permission denied: make_sock: could not bind to address [::]:8000 因为 小 ...

  3. 基于ThinkPHP的在线编辑器调用

    开源的在线编辑器有很多,比如FCKEditor,UEditor,Kindeditor等,调用方式也都大同小异 下面列举UEditor在线编辑器插件在ThinkPHP里面的应用 1.Ueditor下载地 ...

  4. dos 批处理中%cd% 和%~dp0%的区别

    看网上介绍区别,写的好复杂,其实很简单: %cd%  在批处理和命令窗口都能使用.用于打印,当前工作路径. %~dp0% 则只能用于批处理中,用于获得当前批处理文件所在的路径. 做个试验试一下: @e ...

  5. Android开发学习笔记-自定义组合控件

    为了能让代码能够更多的复用,故使用组合控件.下面是我正在写的项目中用到的方法. 1.先写要组合的一些需要的控件,将其封装到一个布局xml布局文件中. <?xml version="1. ...

  6. 中企ITIL需软落地

    IT技术的发展对现代企业产生了深远的影响.企业信息化建设越深入,信息系统的规模越大,业务对IT系统的依赖性也越大,由此对IT服务的要求越高,如何 对繁多的IT技术进行有效的管理,最大程度地利用企业现有 ...

  7. 【转】微信公众开发URL和token填写详解

    很多人不明白微信公众号开发者中心服务器配置里面的url和token是什么,不会填写.看了教程也不理解是什么,本文详述一下这个问题. 第一步:作为一名微信公众号开发者,别人进入你的微信公众号,肯定会看见 ...

  8. Linux less 常用导航命令

    linux中经常用less来查看文件,文件较短的时候用pgup(pageup), pgdn(pagedown),↑,↓几个键够,但是当文件比较长的时候用一些快捷键就能很方便实现快速导航. 1. 按匹配 ...

  9. Metropolis-Hastings算法

    (学习这部分内容大约需要1.5小时) 摘要 马尔科夫链蒙特卡洛(Markov chain Monte Carlo, MCMC)是一种近似采样算法, 它通过定义稳态分布为 \(p\) 的马尔科夫链, 在 ...

  10. c#POST请求php接口

    POST请求php接口 /// <summary> /// 指定Post地址使用Get 方式获取全部字符串 /// </summary> /// <param name= ...