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. JAVA系统和DOMINO通过LDAP集成方
  2. Nand Flash VS Nor Flash
  3. GLog 初始化说明
  4. Servlet和JSP之间的区别
  5. 获得当前字符串的宽度
  6. 如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间
  7. project不显示里程碑标志_在Project中设置里程碑
  8. Android EditText的常用技巧
  9. 结构体构造函数_Go 语言的数据结构 :栈与队列
  10. numpy - np.reshape:将二维数组转变三维数组
  11. 不加群提取群成员深度体会,少走点儿弯路吧
  12. H5打开APP或小程序
  13. 诺基亚 8208支持java么_诺基亚8_诺基亚8208怎么上网_8208 诺基亚
  14. 空间中异面直线距离的计算
  15. visio绘制立方体
  16. 引入ant组件分页时显示英文问题
  17. hec-ras的geometric Data对话框中如何加载GIS背景图层
  18. 『统计学』常用的数据分析方法都在这了!Part.2
  19. 【第93期】谁是元宇宙的“基础设施”?
  20. 车载基础软件——基础软件验证平台

热门文章

  1. CPU发展史(cpu发展史图)
  2. ディアドラ / 魔剑
  3. 多维度分析对比腾讯云服务器和阿里云服务器
  4. 国产动漫独角兽若森短时间恐仍难曲线超车日美动漫
  5. 什么是 WhatsApp云控 WhatsApp群发,WhatsApp协议,他们有什么区别?
  6. matlab特征匹配,MATLAB图像处理-特征提取-形状特征 方法小结
  7. 专访许荣耀:CRMEB开源会员管理电商营销系统作者
  8. python爬取客流数据_【python爬取雅虎财经数据】“五一”和广交会客流叠加 广州出入境客流呈“双高峰”...
  9. 聊天室---------数据库、部署服务器篇
  10. 物联网跨平台应用开发