1
给定两组“n”个数字A和B.从A中选择一个元素,并从B中选择一个,使得总和等于给定值'val'。找到两个元素,所以总和等于给定值
我已经得到了解决方案:
我们可以散列集合A与B的元素和检查集合A中的每一个元素VAL-改编[I]无论是在B组的哈希存在或不。这将需要O(n)时间和O(n)空间 有空间的更好的解决方案O(1)和时间O(n)?
给定两组“n”个数字A和B.从A中选择一个元素,并从B中选择一个,使得总和等于给定值'val'。找到两个元素,所以总和等于给定值
我已经得到了解决方案:
我们可以散列集合A与B的元素和检查集合A中的每一个元素VAL-改编[I]无论是在B组的哈希存在或不。这将需要O(n)时间和O(n)空间 有空间的更好的解决方案O(1)和时间O(n)?
由于你有两个数组没有排序,你没有其他的选择,但看看每个元素一个接一个。所以,你不能低于O(n)
运行时间。我认为你使用的方法是可以的。
阅读这些相关文章:
是数组排序? – 2012-04-07 15:41:22
没有数组没有排序 – Luv 2012-04-07 15:42:05
看看[这个问题]的答案(http://stackoverflow.com/questions/8119911/on-logn-algorithm-that-checks-if-sum-of-2-numbers -in-a-int-given-number/8120870#8120870) – soulcheck 2012-04-07 15:48:31