3つのPHPのアルゴリズムとの数の最も近いです

n個の整数と目標NUMSターゲットを含むアレイを考えます。NUMSは三つの整数を特定し、そのような彼らの最も近いことをターゲットにしています。3つの数字とリターン。各グループは唯一の答えのみ入力があることを前提としています。

例えば、配列NUMS = [-1,2,1、-4]、およびターゲット= 1が与えられます。

最も近いターゲットは、三及び番号2(-1 = 1 + 2 + 2)です。

出典:滞在ボタン(LeetCode)

問題解決のためのアイデア
戻り値3と使用双方向のポインタ法の数
1.テキスト配列のソート
結果が、絶対値の比較結果に近いです 
結果よりも小さい3.ポインタを右に左に、右には大きな動きを残しました
 
クラスのソリューション{

 

    / **
     * @param整数[] $ NUMS
     * @param整数$ターゲット
     * @return整数
     * /
    機能threeSumClosest($ NUMS、$ターゲット){
        ソート($ NUMS)。
        $、カウント=カウント数($ NUMS)。
        $ ANS = $ NUMS [0] + $ NUMS [1] + $ NUMS [2]。
        以下のために($ i = 0; $ iが<$カウント; $ I ++){
            $スタート= $ I + 1; $最後は= $カウント - 1。
            一方、{($ <$エンドを開始)
                $合計= $ NUMS + $ NUMS [$ i]と[$終了]を+ $ NUMS [$スタート];
                ( - $合計)<ABS($ターゲット - $ ANS)、ABS($ターゲット)の場合
                    $ $答= I;
                もし($合計> $ターゲット)
                    $ end--;
                それ以外の場合($和<$ターゲット)
                    $スタート++;
                他
                    $年返します。
            }
        }
        $年返します。        
    }
}

おすすめ

転載: www.cnblogs.com/corvus/p/12009027.html