【力扣每日打卡】2022.2.24球会落入何处

今天开始每天打卡了!

【力扣每日打卡】2022.2.24球会落入何处

 

 题目如上

一开始也没啥好思路,就是想着暴力解,遍历一下 每个小球的下落路径就行,区分一下情况。

后来还是看了题解再做

觉得dfs是不错的方法,采用了递归的方式

首先要区分清楚不同的情况,找到递归的出口

然后再找到递归关系即可了。

以后这种思路要有的。

class Solution {
private:
    int m,n;
public:
    
    vector<int> findBall(vector<vector<int>>& grid) {
        m=grid.size();
        n=grid[0].size();
        vector<int> res;
        for(int i=0;i<n;i++){
            res.push_back(dfs(grid,0,i));
        }
        return res;
    }
    int dfs(vector<vector<int>>& v, int i, int j){
        if(j == n - 1 && v[i][j] == 1 || j == 0 && v[i][j] == -1)return -1;
        if(v[i][j] != v[i][j + v[i][j]])return -1;
        if(i==m-1)return j+v[i][j];
        return dfs(v,i+1,j+v[i][j]);
    }
};

 

上一篇:javascript(JS)高级进阶(七)函数装饰器模式和转发调用,call/apply,节流,防抖装饰器


下一篇:在VMware中安装centos8后配置网络