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

网站建设会遇到哪些难题西安百度seo推广

网站建设会遇到哪些难题,西安百度seo推广,网站建设合同图表版,莱芜房产论坛题目链接:https://leetcode.cn/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/ 1. 题目介绍(13. 机器人的运动范围) 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动&#xff0…

题目链接:https://leetcode.cn/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/

1. 题目介绍(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

2. 题解

2.1 回溯(DFS+剪枝)-- O(mn)

时间复杂度O(mn),空间复杂度O(mn)
在这里插入图片描述

  • 深度优先搜索: 可以理解为暴力法模拟机器人在矩阵中的所有路径。DFS 通过递归,先朝一个方向搜到底,再回溯至上个节点,沿另一个方向搜索,以此类推,过程如上图所示。
  • 剪枝: 在搜索中,遇到数位和超出目标值、此元素已访问,则应立即返回,称之为 可行性剪枝 。
class Solution {// 1. 从[0,0]位置起始出发// 2. 向方格四面八方判断// 3. 统计机器人可到达的格子总数public int movingCount(int m, int n, int k) {// 错误判断if (m <= 0 || n <= 0 || k < 0) return 0;// 辅助数组:用来标记当前格子是否被访问过boolean[][] visited = new boolean[m][n];// 从(0,0)开始出发return dfs(0,0,m,n,k,visited);}public int dfs(int i, int j, int m, int n, int k, boolean[][] visited) {// 递归终止条件:错误判断if(i >= m || j >= n || k <getDigitSum(i) + getDigitSum(j) || visited[i][j]) return 0;// 该位置通过了错误判断,说明该方格属于机器人可达visited[i][j] = true;// 当前格 + 往下走 + 往右走,因为是0出发,不是从任意点出发,所以这里就不需要从四个方向都进行相加return 1 + dfs(i + 1, j, m, n, k, visited) + dfs(i, j + 1, m, n, k, visited);}// 求一个非负整数的数位之和public int getDigitSum(int number){int sum = 0;while (number > 0){sum += number % 10;number = number/10;}return sum;}}

在这里插入图片描述

2.2 BFS – O(mn)

时间复杂度O(mn),空间复杂度O(mn)
在这里插入图片描述

class Solution {public int movingCount(int m, int n, int k) {boolean[][] visited = new boolean[m][n];int res = 0;Queue<int[]> queue= new LinkedList<int[]>();queue.add(new int[] { 0, 0, 0, 0 });while(queue.size() > 0) {int[] x = queue.poll();int i = x[0], j = x[1], si = x[2], sj = x[3];if(i >= m || j >= n || k < si + sj || visited[i][j]) continue;visited[i][j] = true;res ++;queue.add(new int[] { i + 1, j, (i + 1) % 10 != 0 ? si + 1 : si - 8, sj });queue.add(new int[] { i, j + 1, si, (j + 1) % 10 != 0 ? sj + 1 : sj - 8 });}return res;}
}

3. 参考资料

[1] 剑指 Offer 13. 机器人的运动范围( 回溯算法,DFS / BFS ,清晰图解)-- 图片与BFS解法来源
[2] 剑指offer面试题13:机器人的运动范围的Java解法 – DFS/BFS基础
[3] 【LeetCode】剑指 Offer 12. 矩阵中的路径 p89 – Java Version – 相似题目

http://www.hrbkazy.com/news/31517.html

相关文章:

  • 建立企业网站费用百度推广云南总代理
  • 自己本地可以做网站服务器常用的网站推广方法
  • wordpress 菜单状态windows优化大师好不好
  • 公司建设网站怎么作账优化师是一份怎样的工作
  • 电商创业项目有哪些seo详细教程
  • 餐饮业网站源码 织梦关键词搜索热度
  • 南宁seo网站建设费用今日国内新闻大事20条
  • 那个网站ppt做的比较好网络建站工作室
  • 网站建设的困难绍兴seo计费管理
  • 织梦网站程序5.7首页模板百度app旧版本下载
  • 阿里云服务器 个人网站百度公司电话热线电话
  • wordpress个人站无法升级合肥网络推广软件系统
  • 百度联盟做网站赚钱广告联盟app推广
  • 住房和城乡建设部幼儿园网站青岛网站制作设计
  • 江山有做网站开发吗网站排名优化软件
  • 阿里ecs安装wordpress赣州seo公司
  • 做电影网站算侵权吗app推广团队
  • 太原微商网站建设在线工具seo
  • 北京市住房与城乡建设部网站seo网站排名优化价格
  • 网上怎么做营销临沂seo建站
  • 淄博学校网站建设方案百度小说风云排行榜
  • 电费公众号开发独立站seo外链平台
  • 怎样做网站用html深圳外贸网站推广
  • 长沙市建设网站平台的公司网络营销推广有效方式
  • 网页制作模板的网站代码seo课堂
  • 测试一个网站的访问速度热门seo推广排名稳定
  • 全网获客营销系统seo免费
  • 青岛万维网站设计什么是电商?电商怎么做
  • 米拓做的网站如何改代码百度点击器找名风
  • 如何在国内做美国外贸公司网站济南网站万词优化