如果给你两个阵列A& B,每个都有n个正数和等式:
x^8 = y^6 + x^2y^2 + 10
设计一个在nlog(n)时间内运行的算法,该算法在A中找到x,在B中找到y,使得前一个等式成立。
首先要做的是对两个数组进行排序,因为我们希望稍后使用二进制搜索,但问题是术语
x^2y^2
哪个不能在等式的不同侧面分开?或者我在这里走错路? 有什么想法吗?
答案 0 :(得分:4)
首先要注意的是x和y都有均匀的力量。这意味着,当你进行排序时,你应该按绝对值排序(仍然是nlogn)。
然后,遍历array1的每个元素并对数组2执行二进制搜索。您应该能够执行二进制搜索,因为函数是单调递增的。这一步是nlogn。
如果你不理解我的答案,我可以详细说明。
让我知道:)。