贪心算法的思路
public class algorithm45 {
public int jump(int[] nums) {
// 当前位置
int location = 0;
// 跳的步数
int num = 0;
// 数组长度
int m = nums.length;
// 若数组长度小于1, 直接返回0
if(m <= 1) {
return 0;
}
while(num <= m) {
// 步长
int step = 0;
// 权值
int weight = 0;
// 计算一个权值, 权值 = 跳的步数 + 跳到的位置的数字
for(int i = 1; i <= nums[location]; i++) {
// 若可以到达数组最后一位, 则结束循环
if((i + location) >= m - 1) {
step = i;
break;
// 循环得出最大权值
}else if(weight < i + nums[location + i]) {
weight = i + nums[location+i];
step = i;
}
}
location += step;
num++;
// 若location位于数组最后一位, 则结束循环
if(location >= m-1) {
break;
}
}
return num;
}
}