Leetcodetトピック決意-1 C ++バージョン

このブログは、ブログ書かれたリファレンスCYC、ダブルポインタの一部であり、

167二つの数|| - 入力の順序付けられた配列

入力配列は、それらの合計が目標数の和に等しくなるように、2つの数値を見つける昇順で順序付けられた配列は、であるためです。

したがって、昇順に利用特性、ダブルポインタ、吐出ヘッドと吐出テール。二つの数が目標数、テール・ポインタの合計よりも小さい場合、2つの数字が、目標数、先頭ポインタ++の合計よりも小さい場合 - 。

クラス解決{
 パブリック
    ベクトル < INT > twoSum(ベクトル< INT >&番号、int型のターゲット){
        int型 I = 0、J = numbers.size() - 1 ;
        一方、(J> I){
             場合(番号[I] +数字[J] == ターゲット){
                 リターン {I + 1、J + 1 }。
            } 
            であれば(番号[I] +数字[J] <ターゲット)++ I。
            もし(番号[I] +数字[J]>ターゲット) - J。
        } 
        戻り { -1、 - 1 }。
    } 
}。

633.平方数之和

ヘッド・ポインタは、AおよびBは、二つの番号があるかどうかを決定するために、また、テール・ポインタであるテイルポインタSQRT(C)では、2つの和の平方から出発ゼロから^ 2 + B ^ 2 = C。そして先頭ポインタヘッド・ポインタが++であろうcよりも大きい場合、Cは、テール・ポインタ場合よりも少ないであろう - ヘッド・ポインタは、以上のCテイルポインタに等しくなるまで。

クラス解決{
 パブリックBOOL judgeSquareSum(INT C){
         長い 長い分= 0 長い 長い最大= SQRT(C);
        長い 長い合計。
        一方(MIN <= MAX){ 
            合計 =分*分+最大* マックス。
            もし(合計== c)に
                 戻ります もし(合計<C)分++ もし(合計> C)max-- 
        } 
        を返す ; 
    } 
}。

345リバース母音列

母音は、同じ二重ポインタ、文字列の先頭文字列の一方の端を使用して、文字列を反転します。どの母音を参照し、二つのポインタを交換してから行くために次に続けることが、母音を指しているまで停止。

クラス解決{
 パブリック文字列 reverseVowels(ストリングS){
         文字列 A = " aeiouAEIOU " int型私= 0 ;
        INT J = s.size() - 1 ;
        一方(iは< j)を
        { 
            ながら((a.find(S [i])と<a.length())&& iが<!j)を
                I ++ しばらく(!(a.find(S [J])<a.length())&& I < J)
                J - 
            スワップ(S [iが ++]、[S j--]); 
        } 
        戻りS。
    } 
}。

680回文文字列を確認します||

頭部にパリンドロームストリング列対称、二重ポインタを参照し、決定された頭部と尾部に尾は等しくありません。あなたが文字を削除することができますので。だから、左側に異なる文字のために、右のそれぞれちょうど右再帰を使用して処理を削除します。

クラス解決{
 パブリックBOOL validPalindrome(ストリングS){
         戻り sfhw(S、0、s.size() - 10 ); 
    } 
     BOOL sfhw(ストリング S、int型のインデックス1、int型 INDEX2、int型のフラグ){ // フラグ代表是否跳过
        一方(index1の< INDEX2){
             もし、(S [index1の] == S [INDEX2]){index1の++。INDEX2 - ;}
             そう{
                 場合(フラグ== 1返す falseに ; // すでに直接返すかどうかを、スキップした場合
                、他の リターン sfhw(S、index1の、+を1。、INDEX2、1。)|| sfhw(S、index1の,, index2- 1。 1。); 
            } 
        } 
        リターン をtrueに; 
    } 
};

88.マージ2命じた配列

図2は、アレイ1、ソートされた配列内の配列の内容に追加されます。

クラス解決{
 パブリックボイドマージ(ベクトル< INT >&nums1、INT M、ベクトル< INT >&nums2、int型N){
         ためINT J = 0 ; J <nであり、j ++ ){ 
            nums1 [J + M] = nums2 [J]。
        } 
        ソート(nums1.begin()、nums1.end())。
    } 
}。

 

おすすめ

転載: www.cnblogs.com/fromzore/p/11129570.html