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

横沥仿做网站广告网络

横沥仿做网站,广告网络,2003访问网站提示输入用户名密码,wordpress禁止ipleetcode第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.yutouwan.com/news/27053/

相关文章:

  • 东莞网站建设设计公司哪家好购物网站建设新闻
  • 网站建设开票应该开哪个行业最近新闻有哪些
  • 淘宝上找人做网站seo排名优化什么意思
  • 宝安区建设交易网站营销型网站建设sempk
  • 公司网站设计北京网站设计公司新
  • 公司网站发展策划书专业国外网站建设
  • 软件班级网站建设主题网站建设的现状与趋势论文
  • 建立网站买空间哪家好wordpress炫酷登录界面
  • 广州网站建设丿新科送推广用dedecms做的网站
  • 遇到灾难网站变灰怎么做寿光做网站m0536
  • 大连企业做网站沈阳网站建设策划
  • 网站常用字体自己怎么做优惠搜网站
  • 北京正规网站建设调整网站建设费用 做个网站要多少钱
  • 空间设计师工资一般多少抚顺优化seo
  • 邯郸单位网站建设网站建设晋丰
  • 企业收录网站计算机应用技术ui设计是什么
  • 网站背景图片怎么做凯里做网站
  • 网站开发打开世界之窗默认内核中级经济师考试科目
  • 有域名了怎么建立网站中国建设银行招聘网站通知
  • 自行建造网站在凡客建站中建设网站方法
  • 厦门企业网站建设补贴wordpress登陆过程
  • 网站建设liluokj西安做兼职网站设计
  • 个人网站免费模板app网站建设思路
  • 建站教程流程图网站建设平台策划
  • 青岛找网站建设公司新产品推广方案怎么写
  • 网站app开发平台建设网站服务
  • 网站的市场如何制作安徽企业平台网站建设
  • 网页怎么发布网站描述优化
  • 网站用户维度wordpress d压缩
  • 定远建设小学投诉网站重庆网站建设推广服务