到达某个职位的最小步数

时间:2014-11-08 15:05:17

标签: algorithm

我在无限长的数字线上,目前在零位。我只能将R units向右移动,L units向左移动。达到point H.

所需的最少步骤数是多少

我可以知道用于解决这个问题的算法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用扩展欧几里德算法来有效地解决此问题。它实际上找到了一个解决方案 A * x + B * y = gcd(A, B)等式,但您的问题可以很容易地减少到这个。假设O(log(max(A, B))A符合标准整数类型(即不需要bignums),它的时间复杂度为B。您可以阅读更多相关信息,例如:http://en.wikipedia.org/wiki/Extended_Euclidean_algorithm