検索

ホームページ  >  に質問  >  本文

アルゴリズムを使用して解決された Java の問題 (ハッシュマップに関する問題)

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

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

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

リーリー
阿神阿神2809日前655

全員に返信(3)返信します

  • phpcn_u1582

    phpcn_u15822017-05-27 17:43:09

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

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-27 17:43:09

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

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

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

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

    返事
    0
  • 高洛峰

    高洛峰2017-05-27 17:43:09

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

    リーリー

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

    返事
    0
  • キャンセル返事