トウ和のLeetCode

問題:

整数の配列を考えると、2つの数のリターン指数は、彼らが特定のターゲットまで追加するように。

あなたは、各入力が持っているであろうと仮定してもよい  、正確に  一つの解決策を、あなたが利用することはできません  同じ  二度の要素を。

あなたの整数、インデックスを返す2つの配列の要素、特殊なターゲットを追加した2つの配列の要素数の配列を与えます。

あなたは毎回あなたが唯一の正しい答えを入力すると仮定することができますが、二度同じ要素を超えて使用することはできません。

解決

--1--

公共 のint [] twoSum(INT [] NUMS、int型のターゲット){
     ためINT I = 0、I <nums.length; I ++ ){
         ためのint型 J = I + 1、J <nums.length; J ++ ){
             もし(NUMS [J] ==ターゲット- NUMS [I]){
                 戻り 新しい INTを[] {I、J}。
            } 
        } 
    } 
    スロー 新しい例外:IllegalArgumentException( "いいえ2つのサム・ソリューションを" ); 
}
ダブルループ

新しいINT [] = {} --- Java配列ときに新しいオブジェクトアウト

例外:IllegalArgumentException ---パラメータエラー

--2--

公共 のint [] twoSum(INT [] NUMS、int型のターゲット){ 
    地図 <整数、整数>マップ= 新しい HashMapの<> ();
    以下のためにINT ; I <nums.length; iが0 = I ++ ){ 
        map.put(NUMS [i]は、I)。
    } 
    のためのINT ; I <nums.length; iが0 = I ++ ){
         int型補=ターゲット- NUMS [I]。
        もし(!map.containsKey(補体)&& map.get(補体)= I){
             戻り 新しい INT [] {I、map.get(補体)}。
        }
    } 
    スロー 新しいはIllegalArgumentException(「いいえ2サム・ソリューション」); 
}
HashMapのでは、シングルサイクル

map.containKey ---マップ値が含むか否かを判断します

おすすめ

転載: www.cnblogs.com/KSea/p/12143697.html