diff options
author | Jack Sangdahl <[email protected]> | 2025-03-10 00:36:13 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2025-03-10 00:36:13 -0600 |
commit | 7c60dee83b436e8e8a667bf9f191beced8de4fc3 (patch) | |
tree | eb7a24ee2067f92245c57bb118e85a1baf15df50 /other/jump_game3.cpp | |
parent | 5d7cdc215e4ba1ec4cbb24c084cccb5e5e641468 (diff) | |
download | leetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.tar.gz leetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.zip |
chore: move cpp and rust code to directory
Diffstat (limited to 'other/jump_game3.cpp')
-rw-r--r-- | other/jump_game3.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/other/jump_game3.cpp b/other/jump_game3.cpp new file mode 100644 index 0000000..03f7d37 --- /dev/null +++ b/other/jump_game3.cpp @@ -0,0 +1,27 @@ +#include "leetcode.h" + +class Solution { +public: + bool canReach(vector<int> &arr, int start) { + vector<bool> visited(arr.size(), false); + return dfs(arr, start, visited); + } + +private: + bool dfs(vector<int> &arr, int curr, vector<bool> &k) { + if ((curr < 0) || (curr >= arr.size()) || k[curr]) + return false; + if (arr[curr] == 0) + return true; + k[curr] = true; + return dfs(arr, curr + arr[curr], k) || dfs(arr, curr - arr[curr], k); + } +}; + +int main() { + Solution obj; + vector<int> arr1 = {4, 2, 3, 0, 3, 1, 2}, arr2 = {3, 0, 2, 1, 2}; + testBool(obj.canReach(arr1, 5)); // true + testBool(obj.canReach(arr1, 0)); // true + testBool(obj.canReach(arr2, 2)); // false +} |