谷歌访谈期间我被问到这个问题.我们给出一个由字母-F,L,R组成的字符串. - 这是机器人遵循的指令
F-向前迈出一步.
向左转弯.
向右转.
字符串长度最多为2500个字符.
字符串无限次地运行.我们需要判断是否存在具有半径的圆,r(r可以是任何实数),这样机器人永远不会离开圆.我被困在这一点.我想到使用凸包,但如何检查无限次.用代码进行解释将不胜感激.请帮忙.提前致谢
我在最近的一次采访中发现了这一点。我们给定一个由数字组成的 N*M 网格,网格中的一条路径就是你遍历的节点。我们给定一个约束,我们只能在网格中向右或向下移动。所以给定这个网格,我们需要找到排序后按字典顺序最小的路径,从网格的左上角到达右下角,
例如。如果网格是 2*2
4 3
5 1
那么按照问题的字典顺序最小路径是“1 3 4”。遇到这样的问题怎么办?代码受到赞赏。提前致谢。
我最近遇到了这个问题,并认为我可以在这里分享,因为我无法得到它。
我们得到一个编号为 1-25 的 5*5 网格,以及一组 5 对点,它们是网格上路径的起点和终点。
现在我们需要为 5 对点找到 5 条对应的路径,这样两条路径不应该重叠。另请注意,仅允许垂直和水平移动。此外,组合的 5 条路径应覆盖整个网格。
例如,我们给出了一对点:
P={1,22},{4,17},{5,18},{9,13},{20,23}
Run Code Online (Sandbox Code Playgroud)
那么对应的路径将是
1-6-11-16-21-224-3-2-7-12-175-10-15-14-19-189-8-1320-25-24-23到目前为止我想到的是:也许我可以计算所有点对从源到目标的所有路径,然后检查路径中是否没有公共点。然而,这似乎具有更高的时间复杂度。
谁能提出更好的算法?如果有人可以通过伪代码解释,我会很高兴。谢谢