文章标题
来源:互联网 发布:武汉理工网络教学平台 编辑:程序博客网 时间:2024/06/01 07:27
题目描述
地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?
import java.util.Arrays;public class Solution { public int movingCount(int threshold, int rows, int cols) { if(rows<=0 || cols<=0 || threshold<0){ return 0; } boolean[] flag = new boolean[rows*cols]; Arrays.fill(flag,false); return movingCountCore(threshold,rows,cols,0,0,flag); } public int movingCountCore(int threshold, int rows, int cols, int i, int j, boolean[] flag){ int count = 0; int index = i*cols+j; if(i<0 || j<0 || i>=rows || j>=cols || (get_number(i)+get_number(j))>threshold || flag[index]==true){ return 0; } flag[index] = true; count = 1+movingCountCore(threshold,rows,cols,i-1,j,flag)+movingCountCore(threshold,rows,cols,i+1,j,flag)+movingCountCore(threshold,rows,cols,i,j-1,flag)+movingCountCore(threshold,rows,cols,i,j+1,flag); return count; } int get_number(int i){ int sum = 0; while(i>0){ sum += i%10; i = i/10; } return sum; }}
本题也采用回溯法,和上一题矩阵中的路径很相似,这里就不讲解了
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- SSL_1597石子合并问题(动规练习题)
- JAVA中float转换为string
- 蓝桥杯练习题之01字串
- Android | Android系统框架
- iOS11MBProgressHUD无法显示弹窗
- 文章标题
- NIFI 集群状态管理State Management
- JAVA多线程系列--并发工具类(CountDownLatch, CyclicBarrier, Semaphore,Exchanger)
- OpenFire+Spark安装及32位64位问题解决
- 逻辑英语_倒装与强调
- 正确的理解加密芯片
- C在字符串后面加/0和0
- Fragment详细学习解析
- FPGA结构(学习草稿,后面完善)