这道题直接按照题意来解,建立坐标系和移动方案,思路是比较简单的。只是需要注意需要使用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=0 set<pair<int, int>> st;
for (auto &obs : obstacles)
{
st.insert(make_pair(obs[], obs[]));
} int Wx = ;
int Wy = ; int Px = ;
int Py = ;
int maxdistance = ; for (int i = ; i < N; i++)
{
int cmd = commands[i];//当前指令
if (cmd == -)//左转
{
if (Wx == && Wy == )//上-->左
{
Wx = -;
Wy = ;
}
else if (Wx == - && Wy == )//左-->下
{
Wx = ;
Wy = -;
}
else if (Wx == && Wy == -)//下-->右
{
Wx = ;
Wy = ;
}
else if (Wx == && Wy == )//右-->上
{
Wx = ;
Wy = ;
}
}
else if (cmd == -)//右转
{
if (Wx == && Wy == )//上-->右
{
Wx = ;
Wy = ;
}
else if (Wx == - && Wy == )//左-->上
{
Wx = ;
Wy = ;
}
else if (Wx == && Wy == -)//下-->左
{
Wx = -;
Wy = ;
}
else if (Wx == && Wy == )//右-->下
{
Wx = ;
Wy = -;
}
}
else//移动 1<=x<=9
{
//此次移动之前的起点位置为Px和Py
int Tmpx = Px;
int Tmpy = Py;
while (cmd > )
{
//以(Wx,Wy)为步进,移动一次
Tmpx += Wx;
Tmpy += Wy; if (st.find(make_pair(Tmpx, Tmpy)) != st.end())
{
Tmpx -= Wx;
Tmpy -= Wy;
cmd = ;
}
cmd--;
}
int distance = Tmpx*Tmpx + Tmpy*Tmpy;
if (maxdistance < distance)
{
maxdistance = distance;
}
Px = Tmpx;
Py = Tmpy;
}
} return maxdistance;
}

最新文章

  1. excel单元格内换行
  2. 赴美工作常识(Part 2 - 申请)
  3. [转]Worksheet.Change Event (Excel)
  4. HDU 1789 贪心经典
  5. C#注册表操作,根据键取值
  6. ags模版与vs
  7. sed示例
  8. 微信开发 提示 Redirect_uri参数错误解决方法
  9. Windows下MYSQL自动备份批处理
  10. lwip移植到stm32上-enc28j60,103mcu(2)
  11. RoutePrefix和Route 路由前缀
  12. 《Discuz安装时候出现乱码 -- 问题解决方法》
  13. 【Python实践-5】使用迭代查找一个list中最小和最大值
  14. windows中的软链接硬链接等
  15. Python机器学习笔记——随机森林算法
  16. Tomcat类加载架构
  17. Android自动登录功能的实现
  18. Alpha 冲刺 (3/10)
  19. HTML里用如何包含引用另一个html文件 .
  20. Effective C++ 条款46

热门文章

  1. ajax01简介
  2. python中的import一个注意事项
  3. 爬虫之MongoDB
  4. js的深拷贝特别注意this的深拷贝
  5. 智课雅思词汇---二十一、名词性后缀acity是什么意思
  6. java: i18n语言
  7. poj2112 最大流+floyd+二分
  8. js操作获取和设置cookie
  9. LeetCode OJ:Flatten Binary Tree to Linked List(捋平二叉树)
  10. mac 上 mamp 配置虚拟主机 具体过程 ?