题解 | #机器人的运动范围#

机器人的运动范围

http://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8

虽然机器人可以上下左右移动,但是从(0,0)出发向下、向右遍历已经可以遍历所有满足要求的节点
因此只需向下向右进行递归,类似二叉树,因为会出现重复,用二维数组进行标记

public class Solution {
    public int movingCount(int threshold, int rows, int cols) {
        boolean flag[][]=new boolean[rows][cols];
        return dfs(threshold,rows,cols,0,0,flag);
    }
    public int dfs(int target,int x,int y,int curX,int curY,boolean flag[][]){
        int temp=0;//坐标位数和
        for(int i=curX;i>0;i/=10){
            temp+=(i%10);
        }
        for(int j=curY;j>0;j/=10){
            temp+=(j%10);
        }//终止条件
        if(curX<0||curX>=x||curY<0||curY>=y||temp>target||flag[curX][curY]){
            return 0;
        }
        flag[curX][curY]=true;//标记
        return (dfs(target,x,y,curX+1,curY,flag)+dfs(target,x,y,curX,curY+1,flag))+1;
      //递归求解从每个坐标出发可到达的格子数           
    }
}
全部评论

相关推荐

10-29 16:42
门头沟学院 Java
1.今天什么国标的公司打电话约面试,还得准备ppt,好麻烦,网上查薪资一般,打算拒了,不面了2.字节又复活了,什么安全开发,也不知道怎么样,面一面试试吧,还是挺想去字节的,但好难,随缘吧所以今天没面试
嵌入式的小白:面试前可以好好准备下 1.看看你投递的岗位的岗位描述,分析下是哪个业务线,同使要罗列他们描述中提到的技术点 2.根据1中的两点准备 3.岗位描述中应该还有语言要求,这个刷刷八股,要是对自己语言能力很有把握,那就不用看这点了 4.找下你简历中项目部分,看有没有和岗位描述中技术点重合的,这种在面试提到项目时,是高概率问题 好好准备,祝你面试顺利
我的求职进度条
点赞 评论 收藏
分享
故事和酒66:央企,事少钱少稳定福利好,离家近可以考虑
点赞 评论 收藏
分享
09-01 11:31
门头沟学院 Java
buul:七牛云的吧,感觉想法是好的,但是大家没那么多时间弄他这个啊。。。不知道的还以为他是顶尖大厂呢还搞比赛抢hc,只能说应试者的痛苦考察方是无法理解的,他们只会想一出是一出
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务