题解 | #机器人的运动范围#
机器人的运动范围
https://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8
function cal(nums){ var sum = 0 while(nums>0){ sum += parseInt(nums%10) nums = parseInt(nums/10) } return sum } function dfs(r,c,threshold,rows,cols,isvisited){ if(r<0||r>rows-1||c<0||c>cols-1||isvisited[r][c]||cal(r)+cal(c)>threshold){ return 0 } isvisited[r][c]=true; return (1 + dfs(r-1,c,threshold,rows,cols,isvisited) + dfs(r+1,c,threshold,rows,cols,isvisited) + dfs(r,c-1,threshold,rows,cols,isvisited) + dfs(r,c+1,threshold,rows,cols,isvisited)) } function movingCount(threshold, rows, cols) { if(rows<=0||cols<=0||threshold<0){ return 0 } var isvisited = [] for(let i=0;i<rows;i++){ isvisited.push([]) for(let j=0;j<cols;j++){ isvisited[i][j]=false } } return dfs(0,0,threshold,rows,cols,isvisited) } module.exports = { movingCount : movingCount };