剑指offe-机器人的运动范围
机器人的运动范围
地上有一个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-机器人的运动范围相关推荐
- 剑指Offer13_机器人的运动范围
public class 剑指Offer_13_机器人的运动范围 {private int m;private int n;private int k;private int count;privat ...
- 剑指offer.机器人的运动范围
地上有一个 m 行和 n 列的方格,横纵坐标范围分别是 0∼m−1 和 0∼∼n−1.一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格.但是不能进入行坐标和列坐标的数位 ...
- 2021-06-25☞剑指offer13.机器人的运动范围
1.1我的解法 我写成了一个遍历图的所有的算法,写成了遍历图所需的所有步数 以及 1)审题有误:误将坐标和看成两数相加,应该是每个位置上的数字都相加 1.2其他的解法 class Solution { ...
- 剑指offer13. 机器人的运动范围
方法 将问题看作一个树的遍历筛选问题,起始位置为[0,0],可选路径向左,向下遍历 ,通过条件坐标的数位和小于<k. 通过类似中序遍历,来遍历所有可能的坐标点,通过条件限定遍历节点 // 判断当 ...
- leetcode剑指offe刷题-第一题-用两个栈实现队列
leetcode剑指offe刷题-第一题 文章目录 leetcode剑指offe刷题-第一题 前言 一.用两个栈实现队列 1.思路 2.代码如下 总结 前言 记录一下自己刷算法的路程. leetcod ...
- 数组中重复的元素(剑指Offe.03)
数组中重复的元素(剑指Offe.03) 题目描述: 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了 ...
- 剑指offe【31-67】
文章目录 31.整数中1出现的次数 32.把数组排成最小的数 33.丑数 34.第一个只出现一次的字符 35.数组中的逆序对 36.两个链表的第一个公共结点 37.数字再升序数组中出现的次数 38.二 ...
- 【剑指 Offe】11. 旋转数组的最小数字
题目:剑指 Offer 11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数 ...
- 剑指offe 和为S的连续正数序列
1.题目 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...
- 剑指Offe 50:数组中重复的数字
第一种方法:遍历一遍数组,依次放入hash表.一旦遇到一个元素哈希表中已经有了,就是第一个重复的数字. class Solution { public:bool duplicate(int numbe ...
最新文章
- 如何编辑PDF文件,PDF编辑器如何使用
- Java怎么定义图片公共路径_【Java】springboot配置图片访问路径
- R语言ggridges包可视化山脊图(Ridgeline Plots)并且在山脊图中添加均值竖线(Add Mean Line to RIdgeline Plot with ggridges in R)
- kaggle颅内出血比赛分析
- Cypher查询语言--Neo4j-WHERE(三)
- 图像目标检测(Object Detection)原理与实现(一)
- mybatis日志能正常打印出正确sql执行语句;数据库有内容;却查询不出来
- Flex中让Panel等容器可拖动
- FatMouse’ Trade
- 使用squid代理后某些网站无法访问的解决办法(3.1.7版本)
- PVS中TFTP的隐藏配置
- window PCL安装编译
- 计算机超链接文档顶端,电脑在Word文档里插入目录超链接的方法
- VS 显示方法引用的设置方法
- uview中button细边框去除问题
- Ice Lake CPU RESET流程
- 【敏捷4.2】相关方的沟通与协同
- 计算机毕业设计(2)python毕设作品之旅游景点景区售票系统
- PS5手柄可兼容安卓系统和win系统
- 30多岁零基础想转行学编程,来得及吗?
热门文章
- 关于麒麟!关于互联网
- 计算机科学技术标准,计算机科学技术基础知识之标准化和知识产权基础知识
- Java基础项目 开发团队分配管理系统
- (nlogn)的时间复杂度求 最近点对 hdu 1007 凹凸曼与小怪兽的故事 poj3714 Raid...
- iptables的三表五链
- 谁来PK“baidu局域网”
- Ubuntu 18.04 桌面卡死
- android2.2应用开发之IccCard(sim卡或USIM卡)第一篇
- Exception 异常和自定义异常
- RIPS-0.55 对securing fuction的检查方法