码迷,mamicode.com
首页 > 其他好文 > 详细

机器人的运动范围

时间:2020-09-17 22:29:50      阅读:34      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!