码迷,mamicode.com
首页 > 其他好文 > 详细

[leetcode] Jump Game II

时间:2014-06-27 11:51:49      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:class   blog   code   java   http   tar   

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.)

https://oj.leetcode.com/problems/jump-game-ii/

思路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 }));
	}

}

参考:

http://www.cnblogs.com/lichen782/p/leetcode_Jump_Game_II.html

http://blog.csdn.net/havenoidea/article/details/11853301

[leetcode] Jump Game II,布布扣,bubuko.com

[leetcode] Jump Game II

标签:class   blog   code   java   http   tar   

原文地址:http://www.cnblogs.com/jdflyfly/p/3810757.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!