class Solution {
public:
bool dfs(vector<int>& ans,vector<int>& arr,int now){
if(ans[now] != 0) return false;
ans[now] = 1;
if(arr[now] == 0) return true;
bool flag = false;
if(now-arr[now] >= 0) flag = flag || dfs(ans,arr,now-arr[now]);
if(now+arr[now] < arr.size()) flag = flag || dfs(ans,arr,now+arr[now]);
return flag;
}
bool canReach(vector<int>& arr, int start) {
int N = arr.size();
vector<int> ans(N,0);
return dfs(ans,arr,start);
}
};
No.175 - LeetCode1306
最新推荐文章于 2021-05-10 22:37:14 发布