アルゴリズムを使用して解決された Java の問題 (ハッシュマップに関する問題)
阿神
阿神 2017-05-27 17:41:09
0
3
597

leetcode の最初の質問、このメソッドは O(n) の複雑さの解決策を達成できます

質問には、nums = [2, 7, 11, 15] などの int[] と target = 9 が必要です。
合計がターゲット値となる 2 つの数値がある場合、たとえば nums[0] nums[1] = 2 7 = 9
return [0, 1].

次のソリューションを使用する場合、少し疑問があります。つまり、新しいハッシュマップが作成されますが、それに値が割り当てられないということです。この場合、質問の要件をどのように達成すればよいでしょうか?

リーリー
阿神
阿神

闭关修行中......

全員に返信(3)
phpcn_u1582

forループ内のmap.put()は代入ではないでしょうか? ? ?

いいねを押す +0
曾经蜡笔没有小新

この質問では、2 つの数値の合計がターゲット値と指定された値である必要があります。その場合、少なくとも 2 つの数値を走査する必要があります。
(1) 最初に初期化すると、アルゴリズムに O(n) 時間がかかります。最初の値を見つける 値が正しい場合、アルゴリズム時間は O(k)、0 この状況の認識は次のとおりです。

1) まずマップを初期化します、

2) 最初の数字 2 をトラバースし、ターゲット - 2 = 9 - 2 = 7
3) 7 もマップ内にあると判断し、正しい結果を返します。
注: 最初の正しい番号までトラバースしてください

(2) 初期化されていない場合は、停止する前に 2 番目の正しい番号までトラバースします。アルゴリズム時間は O(k)(1 この状況の実現は次のとおりです:
リーリー

いいねを押す +0
小葫芦

いいえKey 的情况下,HashMap.containsKey(Key) 返回的是 false 不包括 Key

リーリー

あなたが思っているようなヌルポインタエラーは発生しません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!