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

旅游网站html5代码模板个性化网站建设企业

旅游网站html5代码模板,个性化网站建设企业,网站分析报告范文2000,济南网站制作的公司题目 874. 模拟行走机器人 分析 这道题就是个简单的模拟 主要有两点考察点: 对方向数组的运用 方向数组存储的是各个方向的单位向量,也即: 方向XY向北01向东10向南0-1向西-10 存储在数组中,则是方向数组: in…

题目

874. 模拟行走机器人
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


分析

这道题就是个简单的模拟
主要有两点考察点:

  • 方向数组的运用
    方向数组存储的是各个方向的单位向量,也即:
方向XY
向北01
向东10
向南0-1
向西-10

存储在数组中,则是方向数组:

int[] dx = {0, 1, 0, -1};
int[] dy = {1, 0, -1, 0};

我们很容易发现:

dx[0]  //北方
dx[1]  //东方
dx[2]  //南方
dx[3]  //西方

我们可以使用一个变量j来指示当前处于什么方向,j始终只有0、1、2、3这四个取值,指示北、东、南、西四个方向,那么怎么实现j在这三个取值之间来回有序切换呢?
我们可以利用去模运算,假设我们初始面向北方,即j为0,那么当我们想向左转的时候,是面向西方,则j要相应的变为3,这时,我们进行的操作是(j-1+4)%4,为什么还要+4呢?因为负数对正数去模,还是负数,就出了范围,这里我们通过加上一个模数4的倍数,来使结果始终为正数。
因此,我们总结转向操作的实现:

j = (j-1+4)%4;   // 左转
j = (j+1+4)%4;   // 右转
  • 怎么实现快速判断当前点是否在障碍物点集中
    这里我们可以利用HashSet
    把障碍物点以String字符串的形式存放在HashSet中。
    在Java中,如果您在HashSet中存放字符串,那么每次调用contains方法,底层判断两个字符串相等与否时,调用的是equals方法而不是==运算符。
    这是因为==运算符比较的是两个对象的引用地址,即它们是否指向同一个内存地址。而String类重写了equals方法,比较的是两个字符串的内容是否相等,而不是它们的引用地址

代码

class Solution {public int robotSim(int[] commands, int[][] obstacles) {// 设置方向数组 初始为y轴方向 往大是向右转,往小是向左转int[] dx = {0, 1, 0, -1};int[] dy = {1, 0, -1, 0};int cur_x = 0,cur_y = 0; // 当前位置 初始为0int max_dis = 0;         // 最大欧氏距离// 创建一个障碍物点集PointSet pointSet = new PointSet(obstacles);int j = 0;  //控制方向   始终在0 1 2 3的范围内for(int i=0;i<commands.length;i++){int op = commands[i];if(op>=1&&op<=9){int[] point = new int[2];  //下一步试探点while(op>0){point[0] = cur_x+dx[j];point[1] = cur_y+dy[j];//试探下一步能不能走if(pointSet.contains(point))   //被建筑物挡住不能走break;else{   //能走,则走,且在走的过程中把最大欧氏距离的平方更新cur_x = cur_x+dx[j];cur_y = cur_y+dy[j];max_dis = Math.max(max_dis,cur_x*cur_x+cur_y*cur_y);}op--;}}else if(op==-2){j = (j-1+4)%4;   // 左转continue;}else if(op==-1){j = (j+1+4)%4;   // 右转continue;}}return max_dis;}
}
//哈希set 高效判断该点是否存在
public class PointSet {private HashSet<String> pointSet;// 构造函数 参数是一个二维点集public PointSet(int[][] points) {pointSet = new HashSet<>();// 把点集中的点都加进去for (int[] point : points) {pointSet.add(point[0] + "," + point[1]);  //以字符串形式存储}}public boolean contains(int[] point) {return pointSet.contains(point[0] + "," + point[1]);}
}

http://www.yayakq.cn/news/311940/

相关文章:

  • 广州建设网站开发免费网站建设网站推广
  • 最好的网站设计开发公司网站优化公司排名深圳
  • 白酒网站模版做近代史纲要题的网站
  • 推荐几个用vue做的网站公司官网怎么做
  • 珠海手机网站建筑工程网上商城投标
  • 没有注册公司可以做网站吗外地公司做的网站能备案吗
  • 无锡营销网站建设珠海品牌机械网站建设
  • 海外网站服务器租用一般网站建设公司有哪些
  • 购物网站建设信息网站项目建设流程
  • 淘宝客网站免费模板下载wordpress 页面生成器
  • 网站建设 阳江wordpress主题在那个文件夹
  • 温州企业建站系统苏ICP备网站建设中企动力无锡
  • 长沙做网站 青创互联建设银行投诉网站
  • 网站被k申述管理系统中计算机应用
  • 网站制作时间表org后缀做网站行
  • 网站你懂我意思正能量appwordpress 列表模板
  • 网站建设用源码crm系统成功案例分享ppt
  • 网站建设工程师 html5衡阳市本地新闻头条
  • 网站建设技术代码wordpress插件logo
  • 如何在网站上做qq群链接网站建设基础实验1
  • 定制软件开发方案暴风seo论坛
  • 南京高端网站建设公司哪家好wordpress使用文档
  • 色一把做最好的网站工程造价价格信息网
  • 服装网站网络建设和硬件资源网站开发制作
  • 织梦建站教程下载北京东直门+网站建设
  • 泰安中呼网站建设有限公司 概况手机在线网站建设
  • 阿里巴巴国际站下载卖家版网站排名logo怎么做
  • 厦门百城建设有限公司网站国内最大的网站建设公司
  • 阿里巴巴国际站下载电脑版建设厅网站沙场限期通知书
  • 大潮建设集团有限公司 网站三亚旅游网站策划书