机器人的运动范围

地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?

解题思路

这道题和剑指offer-矩阵中的路径很相似,递归+回溯。类似的,创建一个一维数组记录某个位置是否被访问过
递归中止条件:矩阵越界,坐标之和不满足条件,当前位置被访问过,返回0

function movingCount(threshold, rows, cols)
{let flag = new Array(rows*cols)let count = movingCountCore(threshold,rows,cols,0,0,flag)return count
}
function movingCountCore(threshold,rows,cols,i,j,flag){if(i<0||j<0||i>=rows||j>=cols||flag[i*cols+j]==true) return 0//计算ij之和let sum = 0let str = `${i}${j}`for(let k=0;k<str.length;k++){sum +=str.charAt(k)-'0'  //charAt(k)返回str第k位上的字符,-'0'变成数字}if(sum > threshold){return 0}flag[i*cols+j] = truereturn 1+movingCountCore(threshold,rows,cols,i+1,j,flag)+movingCountCore(threshold,rows,cols,i,j+1,flag)+movingCountCore(threshold,rows,cols,i-1,j,flag)+movingCountCore(threshold,rows,cols,i,j-1,flag)
}

剑指offe-机器人的运动范围相关推荐

  1. 剑指Offer13_机器人的运动范围

    public class 剑指Offer_13_机器人的运动范围 {private int m;private int n;private int k;private int count;privat ...

  2. 剑指offer.机器人的运动范围

    地上有一个 m 行和 n 列的方格,横纵坐标范围分别是 0∼m−1 和 0∼∼n−1.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格.但是不能进入行坐标和列坐标的数位 ...

  3. 2021-06-25☞剑指offer13.机器人的运动范围

    1.1我的解法 我写成了一个遍历图的所有的算法,写成了遍历图所需的所有步数 以及 1)审题有误:误将坐标和看成两数相加,应该是每个位置上的数字都相加 1.2其他的解法 class Solution { ...

  4. 剑指offer13. 机器人的运动范围

    方法 将问题看作一个树的遍历筛选问题,起始位置为[0,0],可选路径向左,向下遍历 ,通过条件坐标的数位和小于<k. 通过类似中序遍历,来遍历所有可能的坐标点,通过条件限定遍历节点 // 判断当 ...

  5. leetcode剑指offe刷题-第一题-用两个栈实现队列

    leetcode剑指offe刷题-第一题 文章目录 leetcode剑指offe刷题-第一题 前言 一.用两个栈实现队列 1.思路 2.代码如下 总结 前言 记录一下自己刷算法的路程. leetcod ...

  6. 数组中重复的元素(剑指Offe.03)

    数组中重复的元素(剑指Offe.03) 题目描述: 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了 ...

  7. 剑指offe【31-67】

    文章目录 31.整数中1出现的次数 32.把数组排成最小的数 33.丑数 34.第一个只出现一次的字符 35.数组中的逆序对 36.两个链表的第一个公共结点 37.数字再升序数组中出现的次数 38.二 ...

  8. 【剑指 Offe】11. 旋转数组的最小数字

    题目:剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数 ...

  9. 剑指offe 和为S的连续正数序列

    1.题目 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...

  10. 剑指Offe 50:数组中重复的数字

    第一种方法:遍历一遍数组,依次放入hash表.一旦遇到一个元素哈希表中已经有了,就是第一个重复的数字. class Solution { public:bool duplicate(int numbe ...

最新文章

  1. 如何编辑PDF文件,PDF编辑器如何使用
  2. Java怎么定义图片公共路径_【Java】springboot配置图片访问路径
  3. R语言ggridges包可视化山脊图(Ridgeline Plots)并且在山脊图中添加均值竖线(Add Mean Line to RIdgeline Plot with ggridges in R)
  4. kaggle颅内出血比赛分析
  5. Cypher查询语言--Neo4j-WHERE(三)
  6. 图像目标检测(Object Detection)原理与实现(一)
  7. mybatis日志能正常打印出正确sql执行语句;数据库有内容;却查询不出来
  8. Flex中让Panel等容器可拖动
  9. FatMouse’ Trade
  10. 使用squid代理后某些网站无法访问的解决办法(3.1.7版本)
  11. PVS中TFTP的隐藏配置
  12. window PCL安装编译
  13. 计算机超链接文档顶端,电脑在Word文档里插入目录超链接的方法
  14. VS 显示方法引用的设置方法
  15. uview中button细边框去除问题
  16. Ice Lake CPU RESET流程
  17. 【敏捷4.2】相关方的沟通与协同
  18. 计算机毕业设计(2)python毕设作品之旅游景点景区售票系统
  19. PS5手柄可兼容安卓系统和win系统
  20. 30多岁零基础想转行学编程,来得及吗?

热门文章

  1. 关于麒麟!关于互联网
  2. 计算机科学技术标准,计算机科学技术基础知识之标准化和知识产权基础知识
  3. Java基础项目 开发团队分配管理系统
  4. (nlogn)的时间复杂度求 最近点对 hdu 1007 凹凸曼与小怪兽的故事 poj3714 Raid...
  5. iptables的三表五链
  6. 谁来PK“baidu局域网”
  7. Ubuntu 18.04 桌面卡死
  8. android2.2应用开发之IccCard(sim卡或USIM卡)第一篇
  9. Exception 异常和自定义异常
  10. RIPS-0.55 对securing fuction的检查方法