2020-02-09

1.题目描述

根据一定的规则,模拟机器人行走。

2.解答

直接进行模拟即可。

3.代码

超时代码
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;class Solution {
public:int robotSim(vector<int>& commands, vector<vector<int> >& obstacles) {int l1=commands.size();int w[4][2]={0,1,-1,0,0,-1,1,0};int x=0,y=0,t=0,res=0;bool f=false;for (int i=0;i<l1;i++){if (commands[i]==-2) t+=1;else if (commands[i]==-1) t-=1;else{f=false;t=abs(t+40000)%4;for (int j=0;j<commands[i];j++){x=x+w[t][0];y=y+w[t][1];vector<int>vec;vec.push_back(x);vec.push_back(y);vector<vector<int> >::iterator v;v=find(obstacles.begin(),obstacles.end(),vec);if (v!=obstacles.end()){x=x-w[t][0];y=y-w[t][1];f=true;}res=max(res,x*x+y*y);if (f) break;}}}return res;}
};int main(){int a[5]={4,-1,-1,-2,4};int b[2]={2,4};vector<int>v1(a,a+5);vector<int>v2(b,b+2);vector<vector<int> >v3;v3.push_back(v2);Solution s;cout<<s.robotSim(v1,v3)<<endl;return 0;
}
附上仍然超时的代码
class Solution {
public:int robotSim(vector<int>& commands, vector<vector<int> >& obstacles) {int l1=commands.size(),l2=obstacles.size();int w[4][2]={0,1,1,0,0,-1,-1,0};int x=0,y=0,t=0,res=0;for (int i=0;i<l1;i++){if (commands[i]==-2) t=(t+3)%4;else if (commands[i]==-1) t=(t+1)%4;else{set< pair<int,int> >myset;for (int j=0;j<l2;j++){myset.insert(make_pair(obstacles[j][0],obstacles[j][1]));}for (int j=0;j<commands[i];j++){int xx=x+w[t][0];int yy=y+w[t][1];if (myset.find(make_pair(xx,yy))==myset.end()){x=xx;y=yy;res=max(res,x*x+y*y);   }else{break;}}}}return res;}
};

874. 模拟行走机器人相关推荐

  1. leetcode -874 - 模拟行走机器人 - java版

    文章目录 题目 代码 题目 机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方.该机器人可以接收以下三种类型的命令: -2:向左转 90 度 -1:向右转 90 度 1 < ...

  2. 【leetcode-python-22】874. 模拟行走机器人

    [leetcode-python-22]874. 模拟行走机器人 渣渣原始版(超时啦!) 官方版(57.64%) leetcode 874. 模拟行走机器人 渣渣原始版(超时啦!) class Sol ...

  3. LeetCode 874. 模拟行走机器人(set)

    1. 题目 机器人在一个无限大小的网格上行走,从点 (0, 0) 处开始出发,面向北方.该机器人可以接收以下三种类型的命令: -2:向左转 90 度 -1:向右转 90 度 1 <= x < ...

  4. Leetcode 874. 模拟行走机器人 (模拟,一步一步的走)

    这里可以将obstacles存在set中,这里有一个坐标hash的问题,Python用tuple可以直接搞,C++需要自己实现hash算法.可以用set解决. class Solution:def r ...

  5. Leetcode题874、模拟行走机器人(Python题解)

    问题: 题目来源:力扣(LeetCode) leetcode874.模拟行走机器人 难度:简单 分析: 逻辑模拟. 几个小技巧: 1.list是顺序查找,set是哈希查找,所以set会很快.set实际 ...

  6. 5911. 模拟行走机器人 II

    5911. 模拟行走机器人 II 给你一个在 XY 平面上的 width x height 的网格图,左下角 的格子为 (0, 0) ,右上角 的格子为 (width - 1, height - 1) ...

  7. LeetCode 2069. 模拟行走机器人 II(模拟)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个在 XY 平面上的 width x height 的网格图,左下角 的格子为 (0, 0) ,右上角 的格子为 (width - 1, heigh ...

  8. [leetcode] 874. 行走机器人模拟(周赛)

    874. 行走机器人模拟 模拟 描述方向时有个技巧:int[][] dx = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; 分别存储机器人向上.右.下.左走时,坐标应该如何变 ...

  9. 易驾佳智能机器人教练_学车吗?全智能模拟+车载机器人教练,让你轻松学车...

    在绵阳某驾校全智能模拟室里,学员们正坐在全智能模拟驾驶器上,根据电子屏幕上显示的路面状况和语音提示,操作离合器.油门.刹车等. 学员小林是一个初学者,正在进行科目二的相关练习.全智能模拟器提醒她,&q ...

最新文章

  1. python有趣的工具_python好玩的小工具(正在create中)
  2. C语言不用循环不用递归打印0-999的小程序,你看懂了吗?
  3. linux 邮件发送时间,Linux-No.04 Linux 设置定时任务发送邮件功能
  4. C sharp实例:华盾武器门数据接收和解析
  5. vue的token刷新处理
  6. SpringBoot—Entity父子类表@Inheritance和@MappedSuperclass
  7. orbslam算法框架
  8. 汉字不能编程?别闹了,只是看着有点豪横,容易被开除!| 原力计划
  9. 平衡二叉树删除_AVL 平衡树
  10. android audiorecord jni,Android AudioRecord初始化失败
  11. 过滤器在图纸上的符号_看不懂电气图纸?资深级老师傅教你如何识图,学会后受用一生...
  12. 不装oracle客户端plsql,不安装Oracle客户端使用PLSQL
  13. 汇编语言基础知识(二)
  14. 小鑫の日常系列故事(一)——判断对错
  15. YOLOv3学习——锚框和候选区域
  16. 字符在计算机中的存储
  17. Matlab代码区出现中文乱码的情况
  18. 树莓派基础实验20:火焰报警传感器实验
  19. 分享 10 个常见的 CSS 页面布局代码片段
  20. 应聘计算机简历中的爱好怎么写,关于求职个人简历中的爱好特长应该怎么写

热门文章

  1. Adobe illustrator 魔棒工具批量操作 - 连载 7
  2. 生信人一口气搞定SCI作图与数据处理的技巧,有这一个就妥了!
  3. 高颜值免费在线SCI绘图工具支持导出PPT格式图片和图片分享功能
  4. 国家植物标本资源库信息网正式上线
  5. kk6.0 服务器信息 端口,KK的服务器改了端口以后 为什么我进不去
  6. 理性派:数学写真集系列书籍等
  7. 人机交互大作业_人机交互专业:多领域交叉的高能学科
  8. java 创建文件夹_VS Code用来开发JAVA项目真香
  9. p2000专业软件测试对比,对比说说丽台p2000和p2200对比哪个好些?有何区别呢?良心点评实际情况...
  10. t4b代码生成_用T4模板实现简单的代码生成器