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;
}
};
LeetCode 1306. 跳躍遊戲 III (水題、DFS)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.