874. Walking Robot Simulation

题目大意:二维空间,从原点出发 ,4个方向,走, 路上有障碍,有障碍的地方不能走。

解题思路:模拟

#define mp make_pair/*
0north 1east 2south 3west
*/
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};class Solution {
public:int robotSim(vector<int>& commands, vector<vector<int>>& obstacles) {int n = commands.size();int x=0,y=0,f=0;map<pair<int,int>,int> p;for(int i=0;i<obstacles.size();i++){int tx = obstacles[i][0];int ty = obstacles[i][1];p[mp(tx,ty)] = 1;}int res = 0;for(int i=0;i<n;i++){if(commands[i]==-1){f = (f+1) %4 ;}else if(commands[i]==-2){f= (f+3) %4 ;}else{int d = commands[i];while(d){x = x+dx[f];y = y+dy[f];d--;if(p[mp(x,y)]==1){x = x-dx[f];y = y-dy[f];break;}}res = max(res, x*x + y*y);}}return res;}
};

LeetCode 874 题解相关推荐

  1. LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码

    描述 给出一个代表网址 host 的字符串 base_url,和代表查询参数的列表 query_params_list,你需要返回带查询参数的完整 URL. 查询参数列表由一些包含两个元素的数组组成, ...

  2. LeetCode/LintCode 题解丨一周爆刷双指针:最小范围

    描述 有k个升序排列的数组,寻找一个最小范围,使每个数组中至少有一个元素被包含. 范围[a,b]比范围[c,d]小,当且仅当b-a < d-c,或是a < c且b-a == d-c. 给定 ...

  3. LeetCode/LintCode 题解丨一周爆刷字符串:简化路径

    描述 给定一个文件的绝对路径(Unix-style),请进行路径简化. Unix中, . 表示当前目录, - 表示父目录. 结果必须以 / 开头,并且两个目录名之间有且只有一个 /.最后一个目录名(如 ...

  4. LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串

    描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...

  5. LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串

    描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...

  6. LeetCode/LintCode 题解丨一周爆刷字符串:乱序字符串

    描述 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram). 如果一个字符串是乱序字符串,那么他存在一个字母集合相同. 但顺序不同的字符串也在S中. 所有的字符串都只包含小写字母. 点击查 ...

  7. LeetCode/LintCode 题解丨一周爆刷字符串:旋转字符数组

    描述 给定一个字符数组 s 和一个偏移量,根据偏移量原地旋转字符数组(从左向右旋转). offset >= 0 s 的长度 >= 0 原地旋转意味着需要在函数中更改字符数组 s.你不需要返 ...

  8. LeetCode/LintCode 题解丨一周爆刷双指针: 两数之和

    描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是 0 到 n-1. ...

  9. LeetCode/LintCode 题解丨一周爆刷分治法:合并两棵二叉树

    描述 给出两棵二叉树,当你用其中一棵覆盖另一棵时,两棵树的一些节点会发生重叠,而其他节点则不会重叠. 您需要将它们合并到一棵新的二叉树中. 合并的规则是如果两个节点重叠,则将节点值加起来作为合并节点的 ...

最新文章

  1. Objective-C中对Url的参数进行编码
  2. 201671010144 2016-2017-2 《java程序设计》--认识java!
  3. 关于stm32 hal 库 iic 一直是 busy 问题
  4. 如何进行聚类可视化_R语言rainette包对数据聚类可视化
  5. flask静态html
  6. 程序员上帝视角解读“旅行青蛙”,你的呱真的在旅行嘛?
  7. OpenJudge NOI 1.7 22:紧急措施
  8. 【BZOJ3223】文艺平衡树,Splay反转区间
  9. hive指定hadoop执行队列
  10. mongodb查询的语法(大于,小于,大于或等于,小于或等于等等)
  11. u3d一个GameObject绑定两个AudioSource
  12. sas不能安装独立的java_sas安装问题java platform standard edition runtime environment
  13. ENVI裁剪影像重叠区域(非矩形)
  14. 常见在线射频电学计算公式
  15. 企业运营管理体系是什么?
  16. .net 微信会员卡接口
  17. 面试题 丑数(10)
  18. 关于“长尾理论”(The Long Tail)
  19. Supervised Descent Method(人脸对齐之SDM论文解析)
  20. 高德地图,坐标转换,自定义导航路线

热门文章

  1. 1药网三年亏损13亿元:股价再创新低,于刚、刘峻岭身价缩水八成
  2. poj3155(最大密度子图)
  3. 计算机网络中OUI是什么意思,OUI 文件扩展名: 它是什么以及如何打开它?
  4. 利用while循环语句优化从键盘输入5个人的身高(米),求他们的平均身高(米)。
  5. uboot-----borad.c . .
  6. 挥别2021,奋进2022
  7. gradle从7.0.2降级到6.5 报错
  8. 怎么改图片像素大小?如何调整图片像素?
  9. 一个系统,如何在独居老人发生意外的时候,争分夺秒帮老人脱困!在外子女如何照料好老人?有你智居智慧居家养老系统给你答案。
  10. 工作效率提升技巧二:帕累托法则