2012-04-07 12 views
1

2組の 'n'個の数字はAとBで与えられます。AとBから1つの要素を選んで合計が与えられた値 'val'と等しくなるようにします。2つの要素を見つけるのでsumは与えられた値と等しい

我々はセットAとセットBの要素をハッシュとval-ARR [i]をセットBのハッシュに存在するかどうかを集合Aのすべての要素を確認することができます。

は、私は解決策を持っていますか否か。これはO(n)の時間とO(n)のスペースを取るでしょう O(1)と時間O(n)のような空間を持つより良いソリューションがありますか?

+0

は、ソートされた配列ですか? –

+0

配列がソートされていません – Luv

+0

[この質問]への回答を見てください(http://stackoverflow.com/questions/8119911/on-logn-algorithm-that-c​​hecks-if-sum-of-2-numbers -in-a-int-given-number/8120870#8120870) – soulcheck

答えて

1

2つの配列を並べ替えていないので、他の選択肢はありませんが、すべての要素が1つずつ表示されます。したがって、実行時間はO(n)未満になることはありません。あなたが使っているアプローチは大丈夫だと思います。

これらの関連記事を読む:

Given two arrays a and b .Find all pairs of elements (a1,b1) such that a1 belongs to Array A and b1 belongs to Array B whose sum a1+b1 = k

Find two elements in an array that sum to k