leetcode-16最寄りの3及び数

問題:

 

ソリューション:

com.example.demoパッケージ; 

インポートjava.util.Arrays、

パブリック クラスTEST16 { 

    / * * 
     * n個の整数の指定された配列を含み、NUMSターゲティングターゲット。NUMSは3つの、の整数を見つける
     *と目標を最も近いようにします。3つの数字とリターン。各グループは、入力のみが唯一の答えがあることを前提としています。
     * 
     * @パラメータNUMS 
     * @param対象
     * @return 
     * / 
    パブリック INT threeSumClosest(INT [] NUMS、int型のターゲット){
         / * 
            二重ポインタをソート+ 
            最初のデータNUMSを使用して順序付けされたので、2つのポインタの定義、ライニング次に現在の位置を指し、最後の番号、
            その後数3とターゲットとの比較
         * / 
        は、Arrays.sort(NUMS)は、

        INT RES NUMSを= [ 0] + NUMS [ 1 ] + NUMS [ 2 ]。
        以下のためにint型 i = 0 ; iはnums.length <; iは++ ){
             int型左= I + 1 int型、右= nums.length - 1 一方(左< 右){
                 int型の和= NUMS [I] + NUMS [左] + NUMS [右]。
                もし(Math.abs(ターゲット-和)<Math.abs(ターゲット- RES)){ 
                    RES = 和。
                } 
                もし(合計>ターゲット){ - ; 
                } 他の 場合(合計< ターゲット){  ++ 
                } {
                     戻りRES。
                } 
            } 
        } 
        戻りRES。
    } 

    パブリック 静的 ボイドメイン(文字列[]引数){ 
        Test16 T = 新しいTest16()。
        INT [] ARR = { 021、 - 3 }。
        int型 I = t.threeSumClosest(ARR、1 )。
        システム。アウト.println(I); 
    } 
}

 

おすすめ

転載: www.cnblogs.com/nxzblogs/p/11245497.html