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

提供网站建设找哪家公司好高端个人网站

提供网站建设找哪家公司好,高端个人网站,俄文网站设计,网络规划设计师教程 pdfleetcode第874题 链接https://leetcode.cn/problems/walking-robot-simulation 机器人在一个无限大小的 XY 网格平面上行走#xff0c;从点 (0, 0) 处开始出发#xff0c;面向北方。该机器人可以接收以下三种类型的命令 commands #xff1a; -2 #xff1a;向左转 90 度…leetcode第874题 链接https://leetcode.cn/problems/walking-robot-simulation 机器人在一个无限大小的 XY 网格平面上行走从点 (0, 0) 处开始出发面向北方。该机器人可以接收以下三种类型的命令 commands -2 向左转 90 度-1 向右转 90 度1 x 9 向前移动 x 个单位长度 在网格上有一些格子被视为障碍物 obstacles 。第 i 个障碍物位于网格点 obstacles[i] (xi, yi) 。 机器人无法走到障碍物上它将会停留在障碍物的前一个网格方块上但仍然可以继续尝试进行该路线的其余部分。返回从原点到机器人所有经过的路径点坐标为整数的最大欧式距离的平方。即如果距离为 5 则返回 25 注意 北表示 Y 方向。 东表示 X 方向。 南表示 -Y 方向。 西表示 -X 方向。示例 1 输入commands [4,-1,3], obstacles [] 输出25 解释 机器人开始位于 (0, 0) 1. 向北移动 4 个单位到达 (0, 4) 2. 右转 3. 向东移动 3 个单位到达 (3, 4) 距离原点最远的是 (3, 4) 距离为 32 42 25示例 2 输入commands [4,-1,4,-2,4], obstacles [[2,4]] 输出65 解释机器人开始位于 (0, 0) 1. 向北移动 4 个单位到达 (0, 4) 2. 右转 3. 向东移动 1 个单位然后被位于 (2, 4) 的障碍物阻挡机器人停在 (1, 4) 4. 左转 5. 向北走 4 个单位到达 (1, 8) 距离原点最远的是 (1, 8) 距离为 12 82 65提示 1 commands.length 10^4commands[i] is one of the values in the list [-2,-1,1,2,3,4,5,6,7,8,9].0 obstacles.length 10^4-3 * 104 xi, yi 3 * 10^4答案保证小于 2^31 首先考虑暴力法看全部遍历一遍能否获得答案 先将所有commands取出然后直接对坐标一步到位进行移动这显然是不好做的因为一步到位的话中间是否会遇到路障还不知道如果遇到了最后还得退到第一个路障而且最终返回的是路径上距离原点最远的点这已经暗示了想一步到位不太可能应该一步一步地走。 那么一步一步的方式该如何实现如何感知方向的变化应该是重点 我们将方向定义为0~3一共四个当右转时加1当左转时减1四个方向对应不同的移动方向可以用二维列表的下标来对应。 直接遍历所有的操作如果碰到了路障就停止这个操作。 给出第一版的代码 class Solution:def robotSim(self, commands: [int], obstacles: [[int]]) - int:d [[-1,0],[0,1],[1,0],[0,-1]]toward,px,py,res1,0,0,0for each in commands:if each 0:toward 1 if each -1 else -1toward % 4else:for i in range(each):if [px d[toward][0],py d[toward][1]] in obstacles:breakpx d[toward][0]py d[toward][1]res max(res,px**2py**2)return res然而这将碰到超时的问题主要是在判断前面是不是有障碍物将障碍物列表改为集合类型即可 class Solution:def robotSim(self, commands: [int], obstacles: [[int]]) - int:d [[-1,0],[0,1],[1,0],[0,-1]]toward,px,py,res1,0,0,0obstacles [tuple(i) for i in obstacles]obstacles set(obstacles)for each in commands:if each 0:toward 1 if each -1 else -1toward % 4else:for i in range(each):if tuple([px d[toward][0],py d[toward][1]]) in obstacles:breakpx d[toward][0]py d[toward][1]res max(res,px**2py**2)return res在set中查找某一个元素是否存在的实现函数。但是不同的是set中元素的查找是通过hash来进行的所以in set的时间复杂度只有差不多O(1)这是不发生碰撞时的最优情况。 可以参考这篇博客传送门
http://www.sadfv.cn/news/90496/

相关文章:

  • html5手机网站开发视频教程外包服务平台
  • 怎么看网站的访问量螺蛳粉营销策划方案
  • 如何备案成企业网站wordpress最详细的教程视频教程
  • asp.net+h5网站开发牛商网网站做seo好么
  • 静安网站开发seo关键词是什么
  • 网站建设中 尽情期待网站开发word
  • 做的好的网站着陆页学网站开发在大学
  • 网站开发认证考试外国做家具的网站
  • 长沙市宁乡县建设局网站打开汽车之家网页版
  • asp连接数据库做登录网站完整下载为什么wordpress在ie打开很慢
  • 网站开发 案例从化哪里做网站好
  • 阿里云网站简单建设国外的服务器
  • 简述网站开发的工作流程国内 免费 云服务器
  • 做物流网站电话号码福建搜索引擎优化
  • 为什么不用原来的网站做推广创造与魔法官方网站-做自己喜欢的事
  • 公司做网站的费用怎么账务处理天心区网站建设公司
  • 哈尔滨做网站巨耀公司网站开发者兼容模式出错
  • 东莞建设年审网站网络服务商的英文缩写
  • 住房城乡建设管理网站桂林同城网站
  • 唐山免费做网站推广计划表格
  • 网站设计培训成都哪家好高要网站建设
  • 南昌网站建设模板下载网址电器网站建设目的
  • 商标注册号查询入口官网怎样进行seo
  • 电商小程序平台株洲正规竞价优化推荐
  • 绿色简单网站外贸人常用的app
  • 下载源代码建网站网络营销网站规划建设实训作业
  • 关于公司网站建设的请示什么是商业网站
  • 四川省建设厅的注册中心网站企业年金离职后怎么办
  • 广安哪里做网站行业门户网站建设方案
  • 个性化的个人网站简易南昌seo网站管理