在两个数组中找到方程的解

时间:2013-04-21 06:03:53

标签: arrays algorithm

如果给你两个阵列A& B,每个都有n个正数和等式:

x^8 = y^6 + x^2y^2 + 10

设计一个在nlog(n)时间内运行的算法,该算法在A中找到x,在B中找到y,使得前一个等式成立。

首先要做的是对两个数组进行排序,因为我们希望稍后使用二进制搜索,但问题是术语

x^2y^2

哪个不能在等式的不同侧面分开?或者我在这里走错路? 有什么想法吗?

1 个答案:

答案 0 :(得分:4)

首先要注意的是x和y都有均匀的力量。这意味着,当你进行排序时,你应该按绝对值排序(仍然是nlogn)。

然后,遍历array1的每个元素并对数组2执行二进制搜索。您应该能够执行二进制搜索,因为函数是单调递增的。这一步是nlogn。

如果你不理解我的答案,我可以详细说明。

让我知道:)。