标签:ret visit OLE mit col hold ted 大于 turn
题目描述:地上有一个 m 行和 n 列的方格。一个机器人从坐标 0,0 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于 k 的格子。 例如,当 k 为 18时,机器人能够进入方格(35,37),因为 3+5+3+7 = 18。但是,它不能进入方格(35,38),因为 3+5+3+8 = 19。请问该机器人能够达到多少个格子?
分析:还未理解
1 public class Solution { 2 public int movingCount(int threshold, int rows, int cols) { 3 boolean[][] visited = new boolean[rows][cols]; 4 return countingSteps(threshold, rows, cols, 0, 0, visited); 5 } 6 public int countingSteps(int limit,int rows,int cols,int r,int c,boolean[][] visited){ 7 if (r < 0 || r >= rows || c < 0 || c >= cols 8 || visited[r][c] || bitSum(r) + bitSum(c) > limit) { 9 return 0; 10 } 11 visited[r][c] = true; 12 return countingSteps(limit,rows,cols,r - 1,c,visited) 13 + countingSteps(limit,rows,cols,r,c - 1,visited) 14 + countingSteps(limit,rows,cols,r + 1,c,visited) 15 + countingSteps(limit,rows,cols,r,c + 1,visited) 16 + 1; 17 } 18 public int bitSum(int t){ 19 int count = 0; 20 while (t != 0){ 21 count += t % 10; 22 t /= 10; 23 } 24 return count; 25 } 26 }
标签:ret visit OLE mit col hold ted 大于 turn
原文地址:https://www.cnblogs.com/lf6688/p/13655802.html