当前位置: 首页 > news >正文

剑指 Offer 13. 机器人的运动范围

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

示例 1:

输入:m = 2, n = 3, k = 1
输出:3

示例 2:

输入:m = 3, n = 1, k = 0
输出:1

提示:

  • 1 <= n,m <= 100
  • 0 <= k <= 20
class Solution {public int movingCount(int m, int n, int k) {boolean[][] visited = new boolean[m][n];return dfs(0, 0, m, n, k, visited);}private int dfs(int i, int j, int m, int n, int k, boolean visited[][]) {if (i < 0 || i >= m || j < 0 || j >= n || (i/10 + i%10 + j/10 + j%10) > k || visited[i][j]) {return 0;}visited[i][j] = true;return 1+ dfs(i + 1, j, m, n, k, visited) + dfs(i - 1, j, m, n, k, visited) + dfs(i, j + 1, m, n, k, visited) + dfs(i, j - 1, m, n, k, visited);}
}

本题解使用到了递归,也就是递归处理机器人在上,下,左,右的行进,如果不符合条件则返回0,如果符合条件则返回1+在此格子上的又一上,下,左,右的选择。

http://www.lryc.cn/news/119355.html

相关文章:

  • 技术应用:Docker安全性的最佳实验|聊聊工程化Docker
  • 【Tomcat】Tomcat部署及优化
  • xAI与GPT-4:探索宇宙真实本质的AI之战
  • unity vscode 代码关联 跳转 BUG
  • Linux命令200例:tree用于以树状结构显示文件和目录
  • [C++项目] Boost文档 站内搜索引擎(5): cpphttplib实现网络服务、html页面实现、服务器部署...
  • PO、VO、DAO、BO、DTO、POJO 能分清吗?
  • 31 | 独角兽企业数据分析
  • Kotlin语法
  • 【单片机】51单片机,晨启科技,板子引脚对应关系
  • Swift 数据类型
  • 2.本地存储
  • win10远程桌面控制Ubuntu服务器 - 内网穿透实现公网远程
  • 【Git】—— 标签管理
  • JS_判断打开的是什么手机品牌,判断是否是手机,平板,pc
  • HCIA 动态路由协议之RIP协议
  • 提供高品质正规话费充值接口,H5链接,稳定高效!
  • 苍穹外卖day12笔记
  • Prometheus技术文档-基本使用-配置文件全解!!!!!
  • 宋浩高等数学笔记(十一)曲线积分与曲面积分
  • 安卓如何快速定位native内存泄露。
  • redis学习笔记(二)
  • 不侵入代码的rem适配,支持桌面缩放,vue2的适配方案,包含echarts适配
  • 智能合约 -- 常规漏洞分析 + 实例
  • JavaScript 操作历史记录api怎样使用 JavaScript
  • Spring 容器
  • 【腾讯云Cloud Studio实战训练营】使用React快速构建点餐H5
  • Java培训课程哪个品牌好?快拿小本本记好
  • leetcode19. 删除链表的倒数第 N 个结点
  • c51单片机串行通信示例代码(单片机--单片机通信)(附带proteus线路图)