LCP 03. 机器人大冒险
AI-摘要
CaiCai GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
本文最后更新于 2024-06-25,文章内容可能已经过时。
思路
暴力双重循环解题,结果有一个例子过不去,超时了。
看了大佬的解法,厉害。
代码
func robot(command string, obstacles [][]int, x int, y int) bool {
curX := 0
curY := 0
i := 0
for curX <= x && curY <= y {
if command[i] == 'U' {
curY++
}
if command[i] == 'R' {
curX++
}
for _, v := range obstacles {
if v[0] == curX && v[1] == curY {
return false
}
}
i = (i + 1) % len(command)
if curX == x && curY == y {
return true
}
}
return false
}
func robot(command string, obstacles [][]int, x int, y int) bool {
// 如果目标点不在路径上,返回失败
if !isOnThePath(command, x, y) {
return false
}
for _, o := range obstacles {
// 判断有效的故障点是否在路径上(故障的步数大于等于目标的点,视为无效故障)
if (x+y > o[0]+o[1]) && isOnThePath(command, o[0], o[1]) {
return false
}
}
return true
}
func isOnThePath(command string, x int, y int) bool {
uNum := strings.Count(command, "U")*((x+y)/len(command)) + strings.Count(command[0:(x+y)%len(command)], "U")
rNum := strings.Count(command, "R")*((x+y)/len(command)) + strings.Count(command[0:(x+y)%len(command)], "R")
if uNum == y && rNum == x {
return true
}
return false
}
作者:yld
链接:https://leetcode.cn/problems/programmable-robot/solutions/58897/pan-duan-mou-dian-shi-fou-zai-lu-jing-shang-by-yld/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 caicaiBlog
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果