leetcode874
2024-05-13 01:16:56
这道题直接按照题意来解,建立坐标系和移动方案,思路是比较简单的。只是需要注意需要使用set来判断是否遇到障碍,否则会超时。
int robotSim(vector<int>& commands, vector<vector<int>>& obstacles) {int N = commands.size();int M = obstacles.size();//向上 Wx=0,Wy=1//向左 Wx=-1,Wy=0//向下 Wx=0,Wy=-1//向右 Wx=1,Wy=0set<pair<int, int>> st;for (auto &obs : obstacles){st.insert(make_pair(obs[0], obs[1]));}int Wx = 0;int Wy = 1;int Px = 0;int Py = 0;int maxdistance = 0;for (int i = 0; i < N; i++){int cmd = commands[i];//当前指令 if (cmd == -2)//左转 {if (Wx == 0 && Wy == 1)//上-->左 {Wx = -1;Wy = 0;}else if (Wx == -1 && Wy == 0)//左-->下 {Wx = 0;Wy = -1;}else if (Wx == 0 && Wy == -1)//下-->右 {Wx = 1;Wy = 0;}else if (Wx == 1 && Wy == 0)//右-->上 {Wx = 0;Wy = 1;}}else if (cmd == -1)//右转 {if (Wx == 0 && Wy == 1)//上-->右 {Wx = 1;Wy = 0;}else if (Wx == -1 && Wy == 0)//左-->上 {Wx = 0;Wy = 1;}else if (Wx == 0 && Wy == -1)//下-->左 {Wx = -1;Wy = 0;}else if (Wx == 1 && Wy == 0)//右-->下 {Wx = 0;Wy = -1;}}else//移动 1<=x<=9 {//此次移动之前的起点位置为Px和Pyint Tmpx = Px;int Tmpy = Py;while (cmd > 0){//以(Wx,Wy)为步进,移动一次Tmpx += Wx;Tmpy += Wy;if (st.find(make_pair(Tmpx, Tmpy)) != st.end()){Tmpx -= Wx;Tmpy -= Wy;cmd = 0;}cmd--;}int distance = Tmpx*Tmpx + Tmpy*Tmpy;if (maxdistance < distance){maxdistance = distance;}Px = Tmpx;Py = Tmpy;}}return maxdistance; }
转载于:https://www.cnblogs.com/asenyang/p/9692927.html
leetcode874相关推荐
- Leetcode题874、模拟行走机器人(Python题解)
问题: 题目来源:力扣(LeetCode) leetcode874.模拟行走机器人 难度:简单 分析: 逻辑模拟. 几个小技巧: 1.list是顺序查找,set是哈希查找,所以set会很快.set实际 ...
- 模拟(持续更新、整理)
链表 两数相加:leetcode-2 两两交换链表只能够的节点:leetcode-24 K个一组翻转链表:leetcode-25 旋转链表:leetcode-61 反转链表II:leetcode-92 ...
最新文章
- java中i++和++i与c里的区别
- 智能汽车带火汽车存储产品 三星/东芝/SK海力士/美光纷纷“下手”
- oracle查看表和索引碎片,Oracle 表空间索引存储与碎片检查
- C# 以日期时间作为文件名学习总结
- netcore开源框架_.NET Core开发精选文章目录,持续更新,欢迎投稿!
- 肽键肽链内部分的计算机术语大全,生化资料
- C# 读取文件内容/输出txt log
- nginx历史版本下载链接
- 刘德华--6雪藏是一种代价
- python电脑下载-PC端数据下载软件开发(Python)
- [转载] Python dict.keys方法
- matlab函数关系式,怎么用MATLAB建立数据间的函数关系
- npm安装报错(npm ERR code EPERM npm ERR syscall mkdir npm ERR path CProgram Filesnodejsnode_ca...)
- 使用gca警告: Calling gca() with keyword arguments was deprecated in Matplotlib 3.4.
- 地统计分析在气象领域的应用
- 谷歌退出将会给中国互联网带来的10个变化
- 公众号运营,如何快速找到内容定位?
- 青春不是用来抱怨,而是用来奋斗的
- 【中级计量经济学】Lecture 3 非球形扰动
- 分享一下杭州医院的看病流程(我去的杭州市第三人民医院)
热门文章
- 白话Elasticsearch08-深度探秘搜索技术之基于boost的细粒度搜索条件权重控制
- Toolbar-5.0新特性
- Java学习笔记(三)--Java主类结构
- python 选择排序算法
- docker新建Linux虚拟机,RHEL/CentOS 7下创建你的第一个Docker容器
- git 撤销刚才的rebase_git rebase 的使用 (用于撤销某次commit)
- c语言中说取消标识符是,2019年全国计算机二级C语言考试考点解析(3)
- 父爱动画代码python_pygame用blit()实现动画效果的示例代码
- python通过pyinstaller打包软件将GUI项目打包成exe文件
- linux安装mysql5.7.25教程,Linux安装mysql-5.7.25