LeetCode 1306. 跳躍遊戲 III (水題、DFS)

跳躍遊戲 III

class Solution {
public:
    vector<int> vis;
    bool canReach(vector<int>& arr, int start) {
        vis.resize(arr.size()+10,0);
        return dfs(start,arr);
    }
    bool dfs(int x,vector<int>& arr){
        vis[x] = 1 ; 
        if(!arr[x]){
            return 1;
        }
        int y1=x+arr[x],y2=x-arr[x];
        if(y1>=0 && y1<arr.size()  && !vis[y1] ){
            if(dfs(y1,arr)){
                return 1;
            }
            vis[y1] = 0;
        }
        if(y2>=0 && y2<arr.size() && !vis[y2] ){
            if(dfs(y2,arr)){
                return 1;
            }
            vis[y2] = 0;
        }
        return 0;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章