Leetcode要約記事[11-20]

ほとんどの水で11コンテナ

ダブルポインタiおよびjは、それぞれ、アレイの両端に向かいます。各時間は、最大値はRES = MAX( - I)*分(高さ[J]、高さ[i])とRES、(J)です。各比較の高さ[i]と高さ[J]の大きさは、iとjに応じて更新されます。

高さだけで[I]または高さ[j]は、次の更新を検討する前に、現在の最大値よりも大きくなります。

ローマへの12の整数

この質問は唯一実現問題で、行うのは難しいことができます

1  ストリング intToRoman(INT NUM){
 2           RES = "" ;
3          ベクター< INT >ヴァル{ 1000年900500400100905040109541 }。
4          ベクトル< ストリング > STR { " M "" CM "" D "" CD "" C "" XC "" L "" XL "" X "" IX "" V "" IV "" I " }。
5          のためのINT iは= 0を I <val.size();             7                  NUM - = ヴァル[I]。
8つの                  RES + = STR [I]。
9              }
 10          }
 11の         リターンRES。
12 }

整数へ13.ローマン

同上

1   INT romanToInt(ストリングS){
 2          INT RES = 0 3          unordered_map < チャー整数 > M {{ ' I '1 }、{ ' V '5 }、{ ' X '10 }、{ ' L '50 }、{ ' C '100 }、{ ' D '500 }、{ ' M'1000年}。
4          のためのINT iが= 0 ; iが<s.size(); ++ i)が{
 5              INTヴァル= M [S [I]]。
6              もし(I == s.size() - 1 || M [S [I + 1 ] <= M [S [I])RES + = ヴァル。
7つの             他の RES - = ヴァル;
8          }
 9つの         戻りRES。
10 }

14.最長共通接頭辞

それは共通のプレフィックスである場合、各文字列が持っている限り、それを取ることよりも、実行する最初のものになります。二つのポインタI:接頭辞インデックスの文字の現在のシェア、J:インデックスは、文字列の後ろを指し

15. 3Sum

現在の要素の補数を見つけるために、二重のポインタを使用しますが、前提がされる配列を使用することでソートを

しばらく(現在のint型)

  しばらく(左<右)

    INT - 合計ように[左] + [右] ==ターゲットを見つけます

    合計>ターゲットその後、right--場合

    他に左++

プロセスの詳細:最後の実施形態に戻る必要がすべてで構成されているため、同じ要素は、スキップされ

16. 3Sum最も近いです

それでもダブルポインタが、新しい変数diffのオプションを使用

しばらく(現在のint型)

  しばらく(左<右)

    差分=分(差分、ターゲット - 現在INT - [左] + [右])

    合計>タージェその後、right--場合

    他に左++

リターン差分

電話番号の17文字の組み合わせ

まず、各デジタルメモリマップの使用は、文字に対応し、現在のノード状態の各反復をDFSできます

DFS機能:DFS(12の現在のインデックス、現在のノード)

18. 4Sum

同様3Sumは、単に周囲の2番目の要素を横断の層を追加し、最終的に二つの要素の現在の補数を見つけるために、2つのポインタを使用し続けるが、前提がされる配列を使用するためにソートします

しばらく(現在の第1のint)

  一方、(現在の第INT)

    しばらく(左<右)

      INT - 和ように[左] + [右] +第一+秒==ターゲットを見つけます

      合計>ターゲットその後、right--場合

      他に左++

19.リストの最後からN番目のノードを削除します

単一のポインタので、そう順序で次電流と前の要素を見つける必要性を除去し、2つは接続することができます。

現在のノードのN番目の要素の速度を見つけるために、ポインタを使用して。低速高速ノードNのノードよりもいくつかの高速、尾の低速ノードがn番目のノードであることを起こる、ノードに接続されたノードに減速するために、この時間が遅くなることが到達し、ノード。

20.有効カッコ

文字を閉じる> - 地図の出店を使用し、現在の文字を格納するためにスタックを使用しました。

長いキーとして(開口チャーである)のようにスタックをプッシュ

他には、スタックが空であるか、現在のトップであるか否かが判断され、現在は、charに対応していない、リターン偽

残りの症例は直接飛び出すことができ、その後、現在のチャーを例示し、一致に

スタックが空の場合は最後に、説明が有効であること

スタックのみ開口部の文字の最後の試合はまだされていない保ちます

 

おすすめ

転載: www.cnblogs.com/goldenticket/p/12244224.html