Leetcode跳跃游戏大礼包-小羊的记录本

tech2025-10-05  1

目录

Leetcode跳跃游戏大礼包55.跳跃游戏45.跳跃游戏21306.跳跃游戏3

Leetcode跳跃游戏大礼包

55.跳跃游戏

class Solution { public boolean canJump(int[] nums) { int maxposition=0; int end=0; for(int i=0;i<nums.length-1;i++){ maxposition=Math.max(maxposition,nums[i]+i); //遍历到i,要去找下一个圈的最远边界 if(i==end){ end=maxposition; } } //end是可以到达的最远位置 if(end>=nums.length-1){ return true; } return false; } }

45.跳跃游戏2

class Solution { public int jump(int[] nums) { int maxposition=0; int end=0; int steps=0; for(int i=0;i<nums.length-1;i++){ maxposition=Math.max(maxposition,nums[i]+i); if(i==end){ end=maxposition; steps++; } } return steps; } }

1306.跳跃游戏3

class Solution { public boolean canReach(int[] arr, int start) { boolean[] visited=new boolean[arr.length]; return dfs(start,arr,visited); } public boolean dfs(int index,int[] arr,boolean[] visited){ //判断是否找到 if(arr[index]==0){ return true; } visited[index]=true; //dfs int left=index-arr[index]; if(left>=0 && !visited[left] && dfs(left,arr,visited)){ return true; } int right=index+arr[index]; if(right<=arr.length-1 && !visited[right] && dfs(right,arr,visited)){ return true; } return false; } }```
最新回复(0)