(後続のトラバーサルのアレイによって判断されるように、それはBSTない)後続のバイナリ検索ツリートラバーサルシーケンス[安全にオファーを証明]

①タイトル

    整数配列を入力して、アレイは、バイナリ検索ツリーをトラバースした後決意の結果ではありません。出力がYesであれば、そうでなければ出力号 任意の2つの数の入力配列が異なっていると仮定する。

②アイデア

    図1は、アレイの後続の走査で、最後の要素がルートです。

    各要素の2、BST、各要素の左の部分木は、<ルート<右サブツリー

    図3は、先頭からビット0は、最初の>ルート要素は、この記録位置Iを見つけます。この位置の前(この場合には、左の部分木のルートノードよりも少ないと結論付けている)左サブツリーに属し 

    4、ノードと右サブツリーを超えるかどうかを確認し(ルートノードの前に第i番目のビットから開始) 

    図5は、すなわち、繰り返し3-4ステップ、BSTが属しているかどうかを再帰的に決定された左及び右サブツリー。

③コード

  

1  パブリック クラスソリューション{
 2      公共 ブール VerifySquenceOfBST(INT []配列){
 3          ブール [] RES = 新しい新しい ブール [1 ];
 4つの          RES [0] = trueに5          IF(sequence.length == 0)          // 入力する場合直接バックfalseに、次いで、空である
。6              リターン falseに図7          isBST(0 ,. 1- sequence.length、RES、シーケンス);   // 、関数はRES [0]種々の条件に応じて決定される場合、変更することができる機能を呼び出す
。8つの         リターン RES [ 0 ];
 9      }
 10     
11      公衆 INT isBST(INTスタート、INTエンド、ブール [] RES、値int []配列){
 12は             IF(=スタート>終了)    // 1種終了条件
13が                 返す開始を、
 14              INT MID =(スタート+エンド)> >> 1;     // 2で割った
15              INT curr_root = [終了]配列;
 16              INT iが=スタート;    // このステップは、のためにループに書き込むことができない、そうでなければ私はライン21にエラーを認識しないであろう
17              のために(; I <END; I ++は){
 18は                 IF(配列[I]> curr_root)
 19。                     BREAK;    // 最初の>ルート要素が直ちに抜け出す見つかった後
20である             }
 21がある             ためINT J = I; J <END; J ++ ){
 22は、                 IF(配列[J] < {curr_root) 
 23が                      RES [0] =  ;    // 変更RES [0]の値が
24                      リターンスタート;    // isBSTこの機能だけで解像度を変更するには[0]の値は、これだけの行に何かを返す、例えば、私はスタート返す
25                  }
 26              }
 27              isBSTを(,. 1-MID、RES、シーケンススタート);   // 再帰分析左サブツリー、
28              isBST(MID、-End 1、RES、シーケンス。);   //再帰右サブツリー決定
29              リターンスタート;
 30      }
 31です }

④学びました

    1は、108個の質問Leeccodeを行うので、ライン14個の質問で使用法>>>に書き込みます。

    2、我々は判断がBSTではないの後に順番を反復処理する方法を学ばなければならない、この質問のポイント②の分析です。

    図3は、解像度を変更するには、[0]フラグを、全体isBST機能に重要ではありません何を返すために、この関数の戻り値をisBST [0]値をRESを使用して、これは「プログラマーコードのインタビューから私にアプローチガイド:IT企業名タイトルアルゴリズムとデータ構造、最適なソリューション、「145を学びました。

おすすめ

転載: www.cnblogs.com/zf007/p/11668835.html