【发布时间】:2019-08-27 03:26:33
【问题描述】:
我正在阅读我遇到的here 及其相应解决方案的问题。声明如下:
给定源点 (x1, y1) 的坐标确定是否有可能到达目标点 (x2, y2)。从任何点 (x, y) 开始,只有两种类型的有效运动: (x, x + y) 和 (x + y, y)。如果可能,则返回布尔值 true,否则返回 false。
我了解递归是如何解决这个问题的,但我在考虑它的复杂性是如何工作的。我正在考虑从 (1,1) 开始到达任意 (x,y) 的最坏情况 - 在这种情况下有多少递归调用?我在尝试计算递归调用的数量时遇到了困难,所以我非常感谢关于调用数量的解释或说明。提前致谢
【问题讨论】:
-
为算法定义了复杂度。你能提供你用来解决这个问题的算法吗?
-
stackoverflow.com/a/56598475 描述了一种
O(n)算法并暗示了一种O(log(n))算法。但正如 Yuri 所说,大 O 符号是关于算法而不是问题。