1- 思路
贪心
- 利用
cover
记录覆盖的范围,每次覆盖范围移动一步更新 cover
并比较大小,如果可以移动则更新 cover
2- 实现
⭐55. 跳跃游戏——题解思路
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0e0e9c4b1ddd4ef6891d63afe7bcad48.png)
class Solution {
public boolean canJump(int[] nums) {
int len = nums.length;
int cover = nums[0];
for(int i = 1 ; i < len;i++){
if(--cover>=0){
cover = Math.max(cover,nums[i]);
}else{
return false;
}
}
return true;
}
}
3- ACM 实现
public class JumpGame {
private static boolean jump(int[] nums){
int cover = nums[0];
for(int i = 1 ; i < nums.length ; i++){
if(--cover >=0){
cover = Math.max(cover,nums[i]);
}else {
return false;
}
}
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
String[] parts = input.split(" ");
int[] nums = new int[parts.length];
for(int i = 0 ; i < parts.length;i++){
nums[i] = Integer.parseInt(parts[i]);
}
System.out.println("结果是"+jump(nums));
}
}