Leetcode-1306. 跳跃游戏 III

阅读 29

2022-02-12

链接

1306. 跳跃游戏 III

题目

示例

说明

  • 1 <= arr.length <= 5 * 10^4
  • 0 <= arr[i] < arr.length
  • 0 <= start < arr.length

思路

DFS深度优先搜索,由于所有数都为正整数,已经搜索过的位置设置为-1。

C++ Code

class Solution {
public:
    bool dfs(vector<int>& arr, int start){
        if(start<0||start>=arr.size()||arr[start]==-1) return false;
        int step=arr[start];
        arr[start]=-1;
        return step==0||dfs(arr,start+step)||dfs(arr,start-step);
    }

    bool canReach(vector<int>& arr, int start) {
        return dfs(arr,start);
    }

};

精彩评论(0)

0 0 举报