1. 首页
  2. 软件开发
  3. day-24 跳跃游戏 III

day-24 跳跃游戏 III

  • 发布于 2024-09-26
  • 1 次阅读

思路:dfs方法,从开始节点开始进行深度优先遍历,利用一个数组vis[]记录该位置是否被访问过,如果遍历到一个已经访问的位置,返回false 如果遍历到某位置的值为0,返回true

code:

class Solution {

    public boolean ans=false;
    public boolean vis[];
    public boolean canReach(int[] arr, int start) {

        vis=new boolean[arr.length];
        dfs(arr,start);
        return ans;
    }
    public void dfs(int arr[],int start){

        if(vis[start]==true){
   //已经访问过
        return;
        }
        vis[start]=true;
        if(arr[start]==0){

            ans=true;
            return;
        }
        if(0<=start+arr[start]&&start+arr[start]<arr.length)
        dfs(arr,start+arr[start]);
        if(0<=start-arr[start]&&start-arr[start]<arr.length)
        dfs(arr,start-arr[start]);
    }
}

原文链接: https://blog.csdn.net/qq_53568730/article/details/136845718