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

如何做deal网站推广oa管理系统软件

如何做deal网站推广,oa管理系统软件,成品网站 免费,南宁seo结算❓剑指 Offer 13. 机器人的运动范围 难度#xff1a;中等 地上有一个 m 行 n 列的方格#xff0c;从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动#xff0c;它每次可以向左、右、上、下移动一格#xff08;不能移动到方格外#xff09;…❓剑指 Offer 13. 机器人的运动范围 难度中等 地上有一个 m 行 n 列的方格从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动它每次可以向左、右、上、下移动一格不能移动到方格外也不能进入行坐标和列坐标的数位之和大于 k 的格子。例如当 k 为18时机器人能够进入方格 [35, 37] 因为353718。但它不能进入方格 [35, 38]因为 353819。请问该机器人能够到达多少个格子 示例 1 输入m 2, n 3, k 1 输出3 示例 2 输入m 3, n 1, k 0 输出1 提示 1 n,m 1000 k 20 思路广度优先搜索 我们将行坐标和列坐标数位之和大于 k 的格子看作障碍物那么这道题就是一道很传统的搜索题目我们可以使用广度优先搜索或者深度优先搜索来解决它本文选择使用 广度优先搜索 的方法来讲解。 那么如何计算一个数的数位之和呢 我们只需要对数 x 每次对 10 取余就能知道数 x 的个位数是多少然后再将 x 除 10这个操作等价于将 x 的十进制数向右移一位删除个位数类似于二进制中的 右移运算符不断重复直到 x 为 0 时结束。 代码(C、Java) C class Solution { private:int getsum(int x){int ans 0;while(x 0 ){ans x % 10;x / 10;}return ans;} public:int movingCount(int m, int n, int k) {if(k 0) return 1;vectorpairint, int dirs{{0, 1}, {1, 0}, {0, -1}, {-1, 0}};queuepairint, int q;q.push(make_pair(0, 0));vectorvectorint visited(m, vectorint(n));visited[0][0] 1;int ans 1;while(!q.empty()){auto [x, y] q.front();q.pop();for(auto dir : dirs){int cur_x x dir.first, cur_y y dir.second;if(cur_x 0 || cur_x m || cur_y 0 || cur_y n || visited[cur_x][cur_y] || getsum(cur_x) getsum(cur_y) k) continue;q.push(make_pair(cur_x, cur_y));visited[cur_x][cur_y] 1;ans;}}return ans;} };Java class Solution {private int getsum(int x){int ans 0;while(x 0 ){ans x % 10;x / 10;}return ans;}public int movingCount(int m, int n, int k) {if(k 0) return 1;int[][] dirs {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};Queueint[] q new LinkedListint[]();q.offer(new int[]{0, 0});int[][] visited new int[m][n];visited[0][0] 1;int ans 1;while(!q.isEmpty()){int[] cell q.poll();for(int[] dir : dirs){int cur_x cell[0] dir[0], cur_y cell[1] dir[1];if(cur_x 0 || cur_x m || cur_y 0 || cur_y n || visited[cur_x][cur_y] 1 || getsum(cur_x) getsum(cur_y) k) continue;q.offer(new int[]{cur_x, cur_y});visited[cur_x][cur_y] 1;ans;}}return ans;} }运行结果 复杂度分析 时间复杂度 O ( m n ) O(mn) O(mn)其中 m 为方格的行数n 为方格的列数。考虑所有格子都能进入那么搜索的时候一个格子最多会被访问的次数为常数所以时间复杂度为 O ( 4 m n ) O ( m n ) O(4mn) O(mn) O(4mn)O(mn)。空间复杂度 O ( m n ) O(mn) O(mn)搜索的时候需要一个大小为 O ( m n ) O(mn) O(mn) 的标记结构用来标记每个格子是否被走过。 题目来源力扣。 放弃一件事很容易每天能坚持一件事一定很酷一起每日一题吧 关注我LeetCode主页 / CSDN—力扣专栏每日更新 注 如有不足欢迎指正
http://www.hkea.cn/news/14383621/

相关文章:

  • 做网站编辑好还是期刊编辑好阿里云网站建设套餐
  • 自然堂官方网站建设开网店怎么开
  • 招聘网站建设推广东莞网站建设 信科网络
  • 免费做网站站标军事的网站应如何建设
  • 自建站成本哪些公司网站建设好
  • 圣诞网站怎么做广州网络公司策划
  • 做网站优化的注意事项wordpress批量读取excel
  • 如何提高网站的搜索网站建设要考
  • 网站环境配椒江区建设局网站
  • 网站开发南昌网站建设 app开发 图片
  • 辽宁省住房和建设厅网站阜阳网站建设价格低
  • 江苏建设人才考试网官方网站wordpress智能机器人
  • 营销网站建设大概费用淘宝内部卷网站建设
  • 建设信用卡购物网站wordpress顶部代码
  • seo企业建站系统电子商务网站建设背景
  • 全国知名网站网时 网站服务器租赁
  • 国防教育网站建设说明书眼镜网站 wordpress模板
  • 博罗网站建设费用海南网站建设哪里有
  • 凡科建站公司网页布局类型及实例
  • 沙坪坝网站建设安远做网站
  • 怎么建设自己网站(儿童)步骤网站建设网页设计培训班
  • 流量网站建设西湖区建设局网站
  • 长治网站公司泰安集团网站建设公司
  • 哪个网站可以查当地建设项目广告软文营销平台
  • 制作php网站用什么软件wordpress 仿主题
  • 做网站那个搜索引擎好daocloud wordpress
  • 秀山网站建设找工作 招聘附近8小时双休
  • 郑州网站建设网络公司做网站手机
  • 玉溪住房和城乡建设局网站设计感十足的网站
  • 温州网站建设大全网站的设计分析