本文主要是介绍1306. 跳跃游戏 III,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
经过测试,两种写法耗时差距10倍,我也不知道原因是啥
用访问次数的是更快的
class Solution {
public:int n;bool dfs(vector<int>& arr, int start, vector<int>& visited){if(start<0||start>=n || visited[start]==1) return false;visited[start]++;if(arr[start]==0)return true;return dfs(arr,start+arr[start],visited)||dfs(arr,start-arr[start],visited);}bool canReach(vector<int>& arr, int start) {n=arr.size();vector<int>visited(n,0);return dfs(arr, start, visited);}
};
是否访问过是更慢的
class Solution {
public:int n;bool dfs(vector<int>& arr, int start, vector<bool>& visited){if(start<0||start>=n || visited[start]) return false;visited[start]=true;if(arr[start]==0)return true;return dfs(arr,start+arr[start],visited)||dfs(arr,start-arr[start],visited);}bool canReach(vector<int>& arr, int start) {n=arr.size();vector<bool>visited(n,false);return dfs(arr, start, visited);}
};
这篇关于1306. 跳跃游戏 III的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!