文章目录

  • 题目描述
    • 思路 & 代码
    • 二刷

题目描述

  • 注意点:满足数位和大于 k 的格子,不一定可以从 [0, 0] 走到,因此实际上不满足条件

思路 & 代码

  • 考虑到可达性问题,决定用 dfs 来一个个走,不能走 or 走过了就 return
  • 用辅助矩阵来判断是否走过 visited[ ][ ]
  • 时空复杂度 O(n2n^2n2)、O(n2n^2n2)
class Solution {int ans = 0;boolean[][] visited;public int movingCount(int m, int n, int k) {visited = new boolean[m][n];dfs(m, n, k, 0, 0);return ans;}// 行走void dfs(int m, int n, int k, int x, int y){// 来过了就不再来咯,越界也结束咯~if(x >= m || y >= n || visited[x][y]){return;}// 可以走的话~继续往下走if(sum(x) + sum(y) <= k){ans++;visited[x][y] = true;dfs(m, n, k, x + 1, y);dfs(m, n, k, x, y + 1);} }// 数位和判断int sum(int x){int sum = 0;while(x > 0){sum += x % 10;x /= 10;}return sum;}
}

二刷

  • 其实 i j 是有范围限制的,否则需要像上面的代码那样写一个数位和判断。
  • 注意:从[0, 0]出发,可能有些满足 k 条件的格子其实并不能走到
class Solution {boolean[][] graph;int counts = 0;public int movingCount(int m, int n, int k) {graph = new boolean[m][n];infect(0, 0, m, n, k);return counts;}void infect(int i, int j, int m, int n, int k) {if(i < 0 || i >= m || j < 0 || j >= n || (i % 10 + i / 10 + j % 10 + j / 10) > k || graph[i][j]) {return;}graph[i][j] = true;counts++;infect(i + 1, j, m, n, k);infect(i, j + 1, m, n, k);}
}

【LeetCode笔记】剑指 Offer 13-. 机器人的运动范围 (Java、dfs)相关推荐

  1. 【LeetCode】剑指 Offer 13. 机器人的运动范围

    [LeetCode]剑指 Offer 13. 机器人的运动范围 文章目录 [LeetCode]剑指 Offer 13. 机器人的运动范围 package offer;public class Solu ...

  2. Leetcode刷题笔记——剑指 Offer 13. 机器人的运动范围(中等)

    文章目录 题目描述 解题思路 方法一:深度优先遍历DFS 复杂度分析 C++代码实现 方法二:广度优先遍历BFS 复杂度分析 C++代码实现 参考连接 题目描述 地上有一个m行n列的方格,从坐标 [0 ...

  3. 每日一道Leetcode - 剑指 Offer 13. 机器人的运动范围【DFS|BFS】

    DFS: Python版本 class Solution:def movingCount(self, m: int, n: int, k: int) -> int:def dfs(i,j,si, ...

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

    LeetCode 剑指Offer 13 机器人的运动范围 题目 解题 解题一:深度优先搜索 解题二:广度优先搜索 解题三:动态规划 题目 解题 深度优先和广度优先解题思路参考: 剑指 Offer 13 ...

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

    剑指 Offer 13. 机器人的运动范围 题目 ​ 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上 ...

  6. [[EVD]] - 剑指 Offer 13. 机器人的运动范围

    题目分析:[[EVD]] - 剑指 Offer 13. 机器人的运动范围https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-l ...

  7. 【四重优化,速看】剑指 Offer 13. 机器人的运动范围

    立志用最少的代码做最高效的表达 题目 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不 ...

  8. Leetcode 剑指 Offer 13. 机器人的运动范围 (每日一题 20210906)

    地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也不能进入行坐标和列 ...

  9. 剑指 Offer 13. 机器人的运动范围 【重刷】

    文章目录 1.概述 2. 代码 1.概述 题目:https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/ 地上有一个m行 ...

  10. 35. (★DFS)剑指 Offer 13. 机器人的运动范围

    题目描述: 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] .一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左.右.上.下移动一格(不能移动到方格外),也不能进 ...

最新文章

  1. 运用双腾讯云搭建《饥荒》多人联机服务器
  2. 【Clickhouse】rsyslog服务器使用clickhouse列数据库存储日志
  3. oracle constraint_type 问题
  4. It is indirectly referenced from required .class file
  5. 埃及分数问题——迭代加深搜索
  6. JS复制内容到剪贴板
  7. CentOS 6.5通过ifconfig命令看不到网卡IP地址的解决方法
  8. React类里面能写的东西
  9. 电视机原理图_电工电气,如何看电气原理图和接线图,如何设计图纸?
  10. python网页爬虫循环获取_Python 爬虫第三篇(循环爬取多个网页)
  11. 火爆GitHub!3.2k Star的可视化神器开源!
  12. 一点总结,手机应用开发前景
  13. 物体检测object detection object recognition和coco数据集 动手学深度学习v2 pytorch
  14. 电磁流量计 ADMAG AXG系列
  15. java 修改request中的参数_springcloud 中 zuul 修改请求参数信息的方法
  16. 三维激光扫描在堆体体积测算中的应用
  17. 记一段随风而逝的感情
  18. 人工智能机器学习入门资料免费送
  19. 020.验证二叉搜索树
  20. 爬山的蜗牛旅程:java内存结构

热门文章

  1. CSMA/CD协议分析笔记
  2. centos php日志分析,记录一下CentOS7安装GoAccess日志分析工具
  3. java搭建线程池框架,JAVA线程池管理及分布式HADOOP调度框架搭建
  4. 苹果html抓包,苹果被开发者“抓包”违反了自己定的规则
  5. oracle怎么把整形,【用bbed工具对Oracle进行微整形】
  6. java官方 jax rs_jboss7 Java API for RESTful Web Services (JAX-RS) 官方文档
  7. mysql约束_不是吧,阿Sir,MySQL约束你竟然还不懂!
  8. 服务器物品展示框刷物品,我的世界1period;11period;2展示框刷物品bug | 手游网游页游攻略大全...
  9. HTTP状态码表格汇总
  10. Spring Data JPA 从入门到精通~Auditing及其事件详解