zoukankan      html  css  js  c++  java
  • 剑指offer——机器人的运动范围

    题目链接:地上有一个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     {
     4         int [][] flag= new int [rows][cols];
     5         return moving(threshold,rows,cols,flag,0,0);
     6     }
     7     
     8     public int moving(int threshold, int rows,int cols,int [][]flag,int i,int j)
     9     {
    10         if(threshold<=0||i>=rows || j >= cols || i<0 || j< 0 || flag[i][j]==1|| sum(i)+sum(j)>threshold)
    11         {
    12             return 0;
    13         }
    14         
    15         flag[i][j]=1;
    16         
    17         return moving(threshold,rows,cols,flag,i-1,j)
    18             +moving(threshold,rows,cols,flag,i,j-1)
    19             +moving(threshold,rows,cols,flag,i+1,j)
    20             +moving(threshold,rows,cols,flag,i,j+1)
    21             +1;
    22     }
    23     public int sum(int number)
    24     {
    25         if(number==0) return number;
    26         int summary=0;
    27         while(number>0)
    28         {
    29             summary=summary+number%10;
    30             number = number/10;
    31         }
    32         return summary;
    33     }
    34 }
  • 相关阅读:
    java实现网上购物车的简单功能
    java类的访问权限
    linux shell 参数传递
    shell编程之tput
    Linux编程时获取当前时间实例解析
    shell中的引号,单引号,反引号
    Linux 查看Shell类型
    迭代器(lterator)
    在AIX系统下查询硬件信息的方法
    LINUX,HPUX,AIX系统查询主机配置信息
  • 原文地址:https://www.cnblogs.com/wangyufeiaichiyu/p/10896509.html
Copyright © 2011-2022 走看看