[ビスポインタ] leetcode 16 3Sum最寄り

問題:https://leetcode.com/problems/3sum-closest/

        xxsumは、一連の質問であり、一般にのみバイナリ検索を使用することができ、ハッシュは、動作しません。この問題は、必要な値に近い2つの方法でバイナリ検索やハッシュをされています。

        ソートされた配列のために、数3は、第一の中間の数、その周りに他の二つの数字のために、検索以上の標的場合、左側と右側、左側または右側の位置と判定されます。

クラス解決{
 パブリックINT threeSumClosest(ベクトル< INT >&NUMS、int型のターゲット){ 

        int型 N = nums.size()。
        ソート(nums.begin()、nums.end()); 
        int型は =オフセットINT_MAXを。
        int型のres = 0 ;
        int型のk = 1であり; n <K - 1 ; kは++ 
        { 
            int型私は= 0 int型 J = N - 1 しばらく(I <K && J> K)
            { 
                INT NUM = NUMS [K] + NUMS [I] + NUMS [J]。
                もし(ABS(ターゲット- numが)< オフセット)
                { 
                    オフセット = ABS(標的- NUM)を、
                    RES = NUM; 
                } 
                であれば(NUM == ターゲット)
                { 
                    戻りターゲット; 
                } 
                そう であれば(NUM> ターゲット)
                { 
                    J - 
                } 
                
                { 
                    I++ ; 
                } 
            } 
        } 
        戻りRES。
    } 
}。

 

おすすめ

転載: www.cnblogs.com/fish1996/p/11281457.html