题解 | #机器人的运动范围#
机器人的运动范围
https://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8
#include <vector> class Solution { public: int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}}; int res=0; int cal(int n) { int sum=0; while(n){ sum+=(n%10); n/=10; } return sum; } void dfs(int i,int j,int rows,int cols,int threshold,vector<vector<bool>> &vis) { if(i<0||i>=rows||j<0||j>=cols||!vis[i][j]) return; if(cal(i)+cal(j)>threshold) return; res+=1; vis[i][j]=false; for (int k=0; k<4; k++) { dfs(i+dir[k][0],j+dir[k][1],rows,cols,threshold,vis); } } int movingCount(int threshold, int rows, int cols) { if (threshold<=0) { return 1; } vector<vector<bool>> vis(rows,vector<bool>(cols,true)); dfs(0,0,rows,cols,threshold,vis); return res; } };
第一次做回溯偏难的题目,很多地方还不理解,有大神有学习、指点的地方,希望可以留言。谢谢大家
#剑指OFFER#剑指offer刷题 文章被收录于专栏
坚持!努力!学习