0
点赞
收藏
分享

微信扫一扫

剑指 Offer 13. 机器人的运动范围

夏木之下 2022-01-31 阅读 63

思路:简单的dfs吧,找到可以到达的点。

class Solution {
    vector<vector<int>> a=vector<vector<int>>(110,vector(110,0));
public:
    int movingCount(int m, int n, int k) {
        return (dfs(m,n,0,0,k));
    }
    int dfs(int m,int n,int x,int y,int k){
        if(x<0||x>=m||y<0||y>=n||(cc(x)+cc(y))>k||a[x][y]) return 0;
        a[x][y]=1;
        return (dfs(m,n,x+1,y,k)+dfs(m,n,x,y+1,k)+1);
    }
    int cc(int x){
        int sum=0;
        while(x){
            sum+=(x%10);
            x/=10;
        }
        return sum;
    }
};

 

举报

相关推荐

0 条评论