【贪婪算法、动态规划】Jump Game II

题目:leetcode

Jump Game II

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:贪婪算法,时间复杂度O(n),,空间复杂度O(1)

int jump(int A[], int n) {int ret = 0;int curMax = 0;int curRch = 0;for (int i = 0; i < n; i++){if (curRch < i){ret++;curRch = curMax;if (curRch < i)return -1;//返回-1表示无法到达终点}curMax = max(curMax, A[i] + i);}return ret;}

不要哭,你要努力地往前看,你要相信阳光总在风雨后,你最终会看到彩虹的。

【贪婪算法、动态规划】Jump Game II

相关文章:

你感兴趣的文章:

标签云: