假设你有一个数组
2 6 4 2 9 4 2
你想要找到两个差异大于6的元素。在这种情况下,一个可能的答案是(9,2)。你怎么会在O(N ^ 2)时间内做到这一点?
答案 0 :(得分:3)
想法.1
1)您对数字O(n lgn)
进行排序2)如果last和first元素之间的差异是你的数字(6)。你发现了它们(第一个和最后一个元素)。如果差异较小,则没有这样的元素
想法.2
最小和最大元素。如果它们之间的差异小于您的搜索号,则没有这样的元素对。时间:O(n)
答案 1 :(得分:2)
只需扫描最小值和最大值。为O(n)。
答案 2 :(得分:0)
在存储两个数字时,只需循环元素,即到目前为止获得的最小值和最大值。
最坏情况时间:O(n)