博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[leetcode] Jump Game II
阅读量:6715 次
发布时间:2019-06-25

本文共 1128 字,大约阅读时间需要 3 分钟。

hot3.png

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 is2. (Jump1step from index 0 to 1, then3steps to the last index.)

思路1:先想到了DP,从后向前推,当前位置最小步数取决于其所能到达范围内最小的步数,所以需要遍历其覆盖范围,复杂度略高,不是O(n)的算法,目测超时。

思路2:贪心。维护几个变量,curReach,nextReach,每次在curReach的范围内更新nextReach,直到curReach覆盖到结尾。

public class Solution {	public int jump(int[] A) {		if (A == null || A.length < 2)			return 0;		int n = A.length;		int step = 0;		int curReach = 0;		int nextReach = 0;		int i;		for (i = 0; i < n;) {			if (curReach >= n - 1)				break;			while (i <= curReach) {				nextReach = nextReach > (i + A[i]) ? nextReach : (i + A[i]);				i++;			}			curReach = nextReach;			step++;		}		return step;	}	public static void main(String[] args) {		System.out.println(new Solution()				.jump(new int[] { 2, 3, 1, 1, 1, 2, 3 }));	}}

参考:

转载于:https://my.oschina.net/jdflyfly/blog/284321

你可能感兴趣的文章
根据不同的产品id获得不同的下拉选项 (option传多值)
查看>>
css3新增属性:多列(column)
查看>>
redis 主从配置和集群配置
查看>>
手机3D游戏开发:自定义Joystick的相关设置和脚本源码
查看>>
java 数组偶数排在奇数前面
查看>>
window.frames["detailFrm"].isSubmitting = true;//?起什么作用
查看>>
ASCII表
查看>>
idea之debug
查看>>
什么是真正的流程管理?流程管理的是与不是。
查看>>
SEO实践:SEO友好的URL结构
查看>>
洛谷P1613 跑路
查看>>
无论所有题,一定要先分析清楚,所有eade case和逻辑都满足后,再动笔
查看>>
softlayer
查看>>
python各种模块,迭代器,生成器
查看>>
CSS颜色
查看>>
Lunar Lander 月球冒险
查看>>
复习日记-xml/tomcat/response/request
查看>>
Java 关键字final的一小结
查看>>
tp5的include 标签 不能用了么
查看>>
php禁止某ip或ip地址段访问的方法(转载)
查看>>