LeetCode 874 题解
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 题解相关推荐
- LeetCode/LintCode 题解丨一周爆刷字符串:URL 编码
描述 给出一个代表网址 host 的字符串 base_url,和代表查询参数的列表 query_params_list,你需要返回带查询参数的完整 URL. 查询参数列表由一些包含两个元素的数组组成, ...
- LeetCode/LintCode 题解丨一周爆刷双指针:最小范围
描述 有k个升序排列的数组,寻找一个最小范围,使每个数组中至少有一个元素被包含. 范围[a,b]比范围[c,d]小,当且仅当b-a < d-c,或是a < c且b-a == d-c. 给定 ...
- LeetCode/LintCode 题解丨一周爆刷字符串:简化路径
描述 给定一个文件的绝对路径(Unix-style),请进行路径简化. Unix中, . 表示当前目录, - 表示父目录. 结果必须以 / 开头,并且两个目录名之间有且只有一个 /.最后一个目录名(如 ...
- LeetCode/LintCode 题解丨一周爆刷字符串:神奇字符串
描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...
- LeetCode/LintCode 题解丨一周爆刷双指针:神奇字符串
描述 一个神奇字符串S仅包含'1'和'2',并遵守以下规则: 字符串S是神奇的,因为连接字符'1'和'2'的连续出现次数会产生字符串S本身. 字符串S的前几个元素如下:S = "122112 ...
- LeetCode/LintCode 题解丨一周爆刷字符串:乱序字符串
描述 给出一个字符串数组S,找到其中所有的乱序字符串(Anagram). 如果一个字符串是乱序字符串,那么他存在一个字母集合相同. 但顺序不同的字符串也在S中. 所有的字符串都只包含小写字母. 点击查 ...
- LeetCode/LintCode 题解丨一周爆刷字符串:旋转字符数组
描述 给定一个字符数组 s 和一个偏移量,根据偏移量原地旋转字符数组(从左向右旋转). offset >= 0 s 的长度 >= 0 原地旋转意味着需要在函数中更改字符数组 s.你不需要返 ...
- LeetCode/LintCode 题解丨一周爆刷双指针: 两数之和
描述 给一个整数数组,找到两个数使得他们的和等于一个给定的数 target. 你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标.注意这里下标的范围是 0 到 n-1. ...
- LeetCode/LintCode 题解丨一周爆刷分治法:合并两棵二叉树
描述 给出两棵二叉树,当你用其中一棵覆盖另一棵时,两棵树的一些节点会发生重叠,而其他节点则不会重叠. 您需要将它们合并到一棵新的二叉树中. 合并的规则是如果两个节点重叠,则将节点值加起来作为合并节点的 ...
最新文章
- Objective-C中对Url的参数进行编码
- 201671010144 2016-2017-2 《java程序设计》--认识java!
- 关于stm32 hal 库 iic 一直是 busy 问题
- 如何进行聚类可视化_R语言rainette包对数据聚类可视化
- flask静态html
- 程序员上帝视角解读“旅行青蛙”,你的呱真的在旅行嘛?
- OpenJudge NOI 1.7 22:紧急措施
- 【BZOJ3223】文艺平衡树,Splay反转区间
- hive指定hadoop执行队列
- mongodb查询的语法(大于,小于,大于或等于,小于或等于等等)
- u3d一个GameObject绑定两个AudioSource
- sas不能安装独立的java_sas安装问题java platform standard edition runtime environment
- ENVI裁剪影像重叠区域(非矩形)
- 常见在线射频电学计算公式
- 企业运营管理体系是什么?
- .net 微信会员卡接口
- 面试题 丑数(10)
- 关于“长尾理论”(The Long Tail)
- Supervised Descent Method(人脸对齐之SDM论文解析)
- 高德地图,坐标转换,自定义导航路线
热门文章
- 1药网三年亏损13亿元:股价再创新低,于刚、刘峻岭身价缩水八成
- poj3155(最大密度子图)
- 计算机网络中OUI是什么意思,OUI 文件扩展名: 它是什么以及如何打开它?
- 利用while循环语句优化从键盘输入5个人的身高(米),求他们的平均身高(米)。
- uboot-----borad.c . .
- 挥别2021,奋进2022
- gradle从7.0.2降级到6.5 报错
- 怎么改图片像素大小?如何调整图片像素?
- 一个系统,如何在独居老人发生意外的时候,争分夺秒帮老人脱困!在外子女如何照料好老人?有你智居智慧居家养老系统给你答案。
- 工作效率提升技巧二:帕累托法则