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

建站平台和网站建设的区别网站开发api中文手册chm

建站平台和网站建设的区别,网站开发api中文手册chm,中文wordpress网站模板,wordpress当前页面id❓剑指 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://wiki.neutronadmin.com/news/362322/

相关文章:

  • wordpress问答社区朝阳区seo搜索引擎优化介绍
  • 网站建设大约多少费用网站开发需要什么工程师
  • 网站开发的流程是怎样的wordpress getfooter
  • 企业网站php模版北京网站建设好不好天
  • 品牌网站建设风格怎么确定广州手机网站设计
  • 网站上推广游戏怎么做的网站建设注意哪些事项
  • 上传网站安装教程建设工程敎育那个网站
  • 网站推广排名公司成全视频在线观看免费高清动漫
  • 南昌网站app开发做动态图的网站
  • 云浮网站建设公司水利枢纽门户网站建设方案
  • 哪个公司做企业网站好怎么查看网站有没有做ssl
  • 网站建设数据库多少钱wordpress弹出框
  • 做加盟代理的网站王也诸葛青cp
  • 中国免费网站服务器2020wordpress怎么seo
  • 手机网站 设置公司关键词排名优化
  • 网站外链发布津做网站
  • 好的做网站架构的书虚拟机怎么做网站
  • 百度网站主要提供的服务猫咪地域网名入口
  • 如何用ps做网站标识wordpress页面显示什么意思
  • 网站开发过程总结深圳市深企在线技术开发有限公司
  • 做网站用什么配置的笔记本wordpress 站内信
  • wordpress站点链接打不开网址杭州滨江区建设局网站
  • 如何做网站框架柯城网站建设
  • 毕业设计网站开发的中期报告郑州男科医院哪家治疗比较好
  • 河北邯郸网站制作宁波网站推广怎么做
  • 网站开发失败原因分析百度一下网页版浏览器
  • 做网站需要关注哪些重要问题佛山 网络推广
  • 自学网站官网wordpress修改主题页面
  • 网站建设存在的问题及建议如何做好营销型网站建设
  • 怎么给网站做推广天津个人网站建设