3. 机器人大冒险

显示英文描述

我的提交

  • 用户通过次数429
  • 用户尝试次数1180
  • 通过次数439
  • 提交次数5393
  • 题目难度Medium

力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种:

  1. U: 向y轴正方向移动一格
  2. R: 向x轴正方向移动一格。

不幸的是,在 xy 平面上还有一些障碍物,他们的坐标用obstacles表示。机器人一旦碰到障碍物就会被损毁

给定终点坐标(x, y),返回机器人能否完好地到达终点。如果能,返回true;否则返回false

示例 1:

输入:command = "URR", obstacles = [], x = 3, y = 2
输出:true
解释:U(0, 1) -> R(1, 1) -> R(2, 1) -> U(2, 2) -> R(3, 2)。

示例 2:

输入:command = "URR", obstacles = [[2, 2]], x = 3, y = 2
输出:false
解释:机器人在到达终点前会碰到(2, 2)的障碍物。

示例 3:

输入:command = "URR", obstacles = [[4, 2]], x = 3, y = 2
输出:true
解释:到达终点后,再碰到障碍物也不影响返回结果。

限制:

  1. 2 <= command的长度 <= 1000
  2. commandU,R构成,且至少有一个U,至少有一个R
  3. 0 <= x <= 1e9, 0 <= y <= 1e9
  4. 0 <= obstacles的长度 <= 1000
  5. obstacles[i]不为原点或者终点

思路:一开始我是暴力模拟,后来发现终点坐标可能非常大,但是我们发现机器人走的指令是循环的,因此我们必须考虑取模判断坐标,这样我们可以在一次指令集走完便可以判断是否能否到达终点。

class Solution {int flag=0;public boolean robot(String command, int[][] obstacles, int x, int y) {int a=0,b=0,u=0,v=0;for(int i=0;i<command.length();i++){if(command.charAt(i)=='R')a++;elseb++;}boolean flag=false;for(int i=0;i<command.length();i++){for(int j=0;j<obstacles.length;j++){int xx=obstacles[j][0];int yy=obstacles[j][1];if(xx<=x && yy<=y && (xx-u)%a==0 && (yy-v)%b==0 && (xx-u)/a==(yy-v)/b)return false;}if((x-u)%a==0 && (y-v)%b==0 && (x-u)/a==(y-v)/b) flag=true;if(command.charAt(i)=='U') v++;elseu++;}return flag;}
}

2019 力扣杯全国秋季编程大赛:3. 机器人大冒险(模拟)相关推荐

  1. LeetCode 2019 力扣杯全国秋季编程大赛

    文章目录 1. 比赛结果 2. 题目解析 2.1 猜数字 Easy 2.2 分式化简 Esay 2.3 机器人大冒险 Medium 2.4 覆盖 Hard 2.5 发 LeetCoin Hard 1. ...

  2. LeetCode 2021 力扣杯全国秋季编程大赛(第384名)

    文章目录 1. 无人机方阵 2. 心算挑战 3. 黑白翻转棋 4. 玩具套圈 5. 十字路口的交通 2021.9.11,周六 比赛之前:早上去交大看看,本科毕业10年了,由于限流,校园里没有多少回校的 ...

  3. LeetCode 2020 力扣杯全国秋季编程大赛(656/3244,前20.2%)

    文章目录 1. 比赛结果 2. 题目 1. LeetCode LCP 17. 速算机器人 easy 2. LeetCode LCP 18. 早餐组合 easy 3. LeetCode LCP 19. ...

  4. LeetCode 2020 力扣杯全国春季编程大赛(1644/4093,前40.2%)

    文章目录 1. 比赛结果 2. 题目解析 2.1 拿硬币 Easy 2.2 传递信息 Esay 2.3 剧情触发时间 Medium 2.4 最小跳跃次数 Hard 2.5 二叉树任务调度 Hard 1 ...

  5. LCCUP 力扣杯2020秋季编程大赛题解

    目录 1. 速算机器人 2. 早餐组合 3. 秋叶收藏集 4. 快速公交 5. 追逐游戏 1. 速算机器人 小扣在秋日市集发现了一款速算机器人.店家对机器人说出两个数字(记作 x 和 y),请小扣说出 ...

  6. 力扣杯2021秋季编程大赛第四题 LCP 42. 玩具套圈

    原题链接:LCP 42. 玩具套圈 思路 记toy的坐标xt, yt, 半径t ring的坐标xr, yr 满足条件的toy (xt - xr)^2 + (yt - yr)^2 <= (t - ...

  7. 【LCCUP 力扣杯 2023春季编程大赛】1. 补给马车

    题目描述: 远征队即将开启未知的冒险之旅,不过在此之前,将对补给车队进行最后的检查.supplies[i] 表示编号为 i 的补给马车装载的物资数量. 考虑到车队过长容易被野兽偷袭,他们决定将车队的长 ...

  8. 【算法比赛】2020 力扣杯!Code Your Future 春季全国编程大赛

    这个比赛,除了最后一题,其他四题其实没啥难度. 第一题:模拟. 第二题:BFS 或者 DP. 第三题:二分. 第四题:BFS. 第五题:思维 + 树的 DFS. 详细题解如下. 1.拿硬币 AC代码( ...

  9. 2019全国计算机大赛二等奖,喜讯!这次是2019年TI杯全国大学生电子设计竞赛全国二等奖...

    12月21日,2019年TI杯全国大学生电子设计竞赛福建赛区颁奖大会在福州大学举行.大会对福建赛区获得全国大学生电子设计竞赛国赛和省赛奖项的队伍进行了表彰.在今年的比赛中,信息科学与技术学院参赛队伍获 ...

  10. 第十七届“振兴杯”全国青年 职业技能大赛——计算机程序设计员(云计算平台与运维)参赛回顾与总结

    目录 振兴杯官网:"振兴杯"全国青年职业技能大赛 (zxbds.cn) 市赛前期准备与回顾 国赛前期准备回顾 大赛通知 国赛回顾 云网络试题部分 云运维及云开发部分 国赛总结 参赛 ...

最新文章

  1. Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
  2. LPC43xx双核笔记
  3. PHP中文件操作相关
  4. 电感是怎么储存能量的
  5. 模板:容斥优化多重方案背包
  6. 糊涂的教授【拓扑排序】
  7. SCCM2007 R2的部署前准备,SCCM系列之一
  8. 服务器内存 知乎_服务器内存和普通内存有什么区别?可以通用吗?
  9. 据说,上海AI产业规模700亿,包揽全国1/3人才
  10. AngularJS自定义指令–隔离范围教程
  11. C# ASP.NET MVC:使用Cookie记住账号密码
  12. 学习iptables
  13. 分布式存储系统学习笔记(二)—分布式文件系统(3)—Facebook文件系统(Haystack)
  14. nbu备份脚本 linux,NBU60网络备份大全之Linux设备管理(参考Word)
  15. linux dnf配置文件,如何为CentOS 8配置本地Yum/DNF存储库
  16. 香港拼音--汉字对照表
  17. 在网页中如何定义鼠标的样式
  18. proteus8的简单运用
  19. github上Android开源项目汇总(带效果图)
  20. 量子计算机算法详解,量子计算机量子算法以及物理实现.pdf

热门文章

  1. Using Technorati Tags
  2. 战国七雄中最强大的国家(除秦外)——赵国_我是亲民_新浪博客
  3. 智能分数计算机在线使用,作业帮智能计算器在线使用
  4. 京东商城网页数据爬取
  5. 计蒜客 青出于蓝胜于蓝(dfs序+树状数组)
  6. JScript.net
  7. 《秘密》之你的秘密和生命的秘密
  8. 文献阅读(03)Computing Graph Neural Networks: A Survey from Algorithms to Accelerators
  9. GNN学习笔记(三) Graph Neural Network概述
  10. (四)Python中随机森林的实现与解释