加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

机器人的运动范围

发布时间:2020-12-13 21:10:26 所属栏目:PHP教程 来源:网络整理
导读:题目 地上有1个m行和n列的方格。1个机器人从坐标0,0的格子开始移动,每次只能向左,右,上,下4个方向移动1格,但是不能进入行坐标和列坐标的数位之和大于k的格子 解题 能走1直走 走过的不在走 public class Solution { int count= 0 ; public int movingCou

题目

地上有1个m行和n列的方格。1个机器人从坐标0,0的格子开始移动,每次只能向左,右,上,下4个方向移动1格,但是不能进入行坐标和列坐标的数位之和大于k的格子

解题

能走1直走
走过的不在走

public class Solution { int count=0; public int movingCount(int threshold,int rows,int cols) { if(0>threshold || rows<=0 || cols<=0) return count; if(threshold ==0) return 1; int[][] A = new int[rows][cols]; // 默许是 0 movingCount(A,threshold,0,rows,cols); return count; } public void movingCount(int[][] A,int k,int i,int j,int cols){ if(i<0 || i>= rows || j<0 || j>=cols) return; int s = getDigitSum(i,j); if(s<=k){ if(A[i][j] ==0){ count++; A[i][j] = 1; movingCount(A,k,i,j+1,cols); movingCount(A,j-1,i-1,j,i+1,cols); } } } public int getDigitSum(int a,int b){ return getDigitSum(a) + getDigitSum(b); } public int getDigitSum(int num){ int sum = 0; while(num >0){ sum +=num%10; num/=10; } return sum; } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读