机器人的运动范围 --剑指offer
Posted nlw-blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器人的运动范围 --剑指offer相关的知识,希望对你有一定的参考价值。
public class Solution { public int movingCount(int threshold, int rows, int cols) { boolean[][] flag=new boolean[rows][cols]; return moveCountCore(threshold,rows,cols,0,0,flag); } private int moveCountCore(int threshold,int rows,int cols,int i,int j,boolean[][]flag){ //不满足条件时 返回0 if(i<0||j<0||i>=rows||j>=cols||flag[i][j]==true||count(i)+count(j) > threshold){ return 0; } flag[i][j] = true; //满足条件时 计算其余四个方格的情况并?1 return 1 + moveCountCore(threshold,rows,cols,i+1,j,flag) + moveCountCore(threshold,rows,cols,i-1,j,flag) + moveCountCore(threshold,rows,cols,i,j+1,flag) + moveCountCore(threshold,rows,cols,i,j-1,flag); } /* 计算一个数字的各个位的数字之和 */ private int count(int num){ String str = String.valueOf(num); int sum=0; for(int i =0;i<str.length();i++){ sum += str.charAt(i) - ‘0‘; } return sum; } public static void main(String[] args) { } }
以上是关于机器人的运动范围 --剑指offer的主要内容,如果未能解决你的问题,请参考以下文章