タグ付けされた質問 「binary-tree」

それぞれが最大2つの子(左と右)を持つノードで構成される高レベルのデータ構造。子のないノードはリーフと呼ばれ、同じ親を持つ2つのノードは兄弟と呼ばれます。

3
審美的に楽しい除数ツリーを構築する
美的に満足できる除数ツリーは、n任意の合成数に対して、の平方根に最も近い除数mのペアである2つの子ノードを持つ入力の除数のツリーです。左ノードはのより小さな除数で、右ノードはのより大きな除数でなければなりません。ツリーの素数には、子ノードがないはずです。あなたのツリーは、テキストアートまたは画像の形式である場合があります。テキストアート出力のルールは次のとおりです。mmm 間隔ルール ツリー上のノードの間隔を空けるために、次のルールがあります。 ルートから所定の深さにあるノードはすべて、出力の同じテキスト行にある必要があります。 / \ NOT / \ / \ / 3 2 3 2 左側のノードでは、ノードが1桁の数字の場合、着信ブランチは右上になければなりません。そうでなければ、最後の数字のすぐ上になります。例: /および/ 3 720 正しいノードの場合、ノードが1桁の数字である場合、着信ブランチは左上になければなりません。それ以外の場合、最初の数字のすぐ上にあります。例: \および\ 7 243 出ていく左の枝の場合、枝は番号の左側に1スペースを開始する必要があります。例: 275 / 11 出て行く右の枝の場合、枝は数字の右に1スペースを開始する必要があります。例: 275 \ 25 ツリーの同じレベルにある2つのノードの間には、少なくとも2つのスペースが必要です。同時に、ツリーの同じレベルにある2つのサブツリーは、それらの間のスペースをできるだけ少なくする必要があります。 **サブツリー**が近すぎるため、このツリーは機能しません。 504 / \ / \ / \ / \ 21 24 / \ / \ / …

22
Natural Pi#0-ロック
ゴール 入力を受け取るプログラム/関数を作成し、整数のランダムなペアが比較的素数であるNかどうかを確認しN、を返しますsqrt(6 * N / #coprime)。 TL; DR これらの課題は、Piを概算するために自然と脳(およびおそらく再利用可能なリソース)のみを必要とするアルゴリズムのシミュレーションです。ゾンビの黙示録中に本当にPiが必要な場合、これらの方法は弾薬を無駄にしません!さらに8つの課題があります。推奨事項を作成するには、サンドボックスの投稿をチェックしてください。 シミュレーション 何をシミュレートしていますか?さて、2つのランダムな整数が比較的素数(すなわち、コプライムまたはgcd == 1)である確率は6/Pi/Piです。それらを数える; gcdが1 かどうかを確認します。繰り返す。これを数回繰り返した後、sqrt(6.0 * total / num_coprimes)に向かう傾向がありPiます。黙示録的な世界で平方根を計算するのが不安になっても心配しないでください!そのためのニュートン法があります。 これをどのようにシミュレートしますか? 入力してください N 次のN時間を実行します。 ランダムな正の整数を均一に生成しi、j と 1 <= i , j <= 10^6 もしgcd(i , j) == 1:result = 1 その他: result = 0 N結果の合計を取り、S 戻る sqrt(6 * N / S) …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

7
バイナリフォレストを植える!
A014486に触発されました。 チャレンジ 基数10の整数入力が与えられた場合、入力に対応するバイナリフォレストの表現を作成します。表現には、ネストされた配列と文字列が含まれますが、これらに限定されません。 どうやって? 入力をバイナリに変換します。1sは枝を表し、0sは葉を表します。 これを理解しやすくするために834、例として(バイナリで1101000010)を使用しましょう。 最初の数字から始めます。最初の数字は1なので、枝を描きます: \ / 1 または配列として、 {{1}} 次の数字は1なので、さらに枝を描画します(左から右に進みます)。 \ / 1 \ / 1 または配列として、 {{1, {1}}} 次の数字は0なので、葉を配置します。 0 \ / 1 \ / 1 または配列として、 {{1, {1, 0}}} 次の桁は1なので、ブランチを配置します。 \ / 0 1 \ / 1 \ / 1 または配列として、 {{1, {1, 0, {1}}}} …

14
これはBSTの先行予約の走査ですか?
バックグラウンド バイナリツリーは、そのすべてのノード最大2人の子供に持ってルート権限を取得し、ツリーです。 標識された二分木は、そのすべてのノードは正の整数で標識された二分木です。さらに、すべてのラベルは区別されます。 BST(バイナリ検索ツリー)は、各ノードのラベルは、その左の部分木のすべてのノードのラベルよりも大きく、その右サブツリーの全てのノードのラベルよりも小さくなっている標識された二分木です。たとえば、次はBSTです。 ラベル付きバイナリツリーの事前順序走査は、次の擬似コードによって定義されます。 function preorder(node) if node is null then return else print(node.label) preorder(node.left) preorder(node.right) より良い直観を得るには、次の画像を参照してください。 このバイナリツリーの頂点は、次の順序で印刷されます。 F, B, A, D, C, E, G, I, H BSTについての詳細はこちら、先行予約の走査についての詳細はこちらをご覧ください。 チャレンジ 整数のリストを考えると、あなたのタスクは、その正確プリオーダートラバーサルプリントBSTがあるかどうかを決定することです。aaaaaa 入力 明確な正の整数aの空でないリスト。aaa オプションで、aaaの長さ。 出力 truthyの値があれば、いくつかのBSTのプリオーダートラバーサルです。aaa falseyのそれ以外の値。 ルール 有効な提出、I / O、抜け穴の標準ルールが適用されます。 これはcode-golfであるため、最短のソリューション(バイト単位)が優先されます。いつものように、ゴルフ言語のとてつもなく短い解決策で、選択した言語で長い回答を投稿することを妨げないでください。 これはルールではありませんが、ソリューションをテストするためのリンクとそれがどのように機能するかの説明が含まれていれば、あなたの答えはよりよく受け取られます。 例 Input ----> Output [1] ----> True …

9
バイナリツリーを列挙する
二分木 二分木は、3つのタイプのノードを持つツリーです。 子を持たないターミナルノード それぞれが1つの子を持つ単項ノード それぞれ2つの子を持つバイナリノード BNF(Backus–Naur形式)で与えられる次の文法でそれらを表現できます。 <e> ::= <terminal> | <unary> | <binary> <terminal> ::= "0" <unary> ::= "(1" <e> ")" <binary> ::= "(2" <e> " " <e> ")" この文法では、ノードは事前順序で指定され、各ノードは、子の数である数字で表されます。 モッツキン数 Motzkin番号(OEIS)(Wikipedia)には多くの解釈がありますが、1つの解釈は、nth Motzkin番号はnノードを持つ別個の二分木の数であるということです。Motzkin番号の表が始まります N Motzkin number M(N) 1 1 2 1 3 2 4 4 5 9 6 21 7 …

27
*の通訳を書く
タスクは簡単です。言語*のインタープリターを作成します。 wikiへのより大きなリンクがあります。 有効なプログラムは3つだけです: * 「Hello World」を印刷します * 0〜2,147,483,647の乱数を出力します *+* 永遠に実行します。 3番目のケースは、この質問の仕様に従った無限ループでなければなりません 入力: 入力は、標準のI / Oルールで受け入れ可能な任意の入力方法で取得できます。 上記のプログラムのいずれかになります 出力: 最初のケースではHello World、末尾の改行の有無にかかわらず、正確に印刷する必要があります。 2番目の場合、言語の整数の最大値が2,147,483,647より小さい場合は、言語の整数の最大値を使用します 最初と2番目のケースは、標準のI / Oルールで受け入れ可能な出力に出力できます。 3番目のケースでは、出力は行われません。 得点: これはcode-golfであるため、バイト単位の最短回答が勝ちです。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

19
二分木の高さを計算する最短プログラムを書く
二分木の高さは、ルートノードからルートから最も遠いノードの子までの距離です。 以下に例を示します。 2 <-- root: Height 1 / \ 7 5 <-- Height 2 / \ \ 2 6 9 <-- Height 3 / \ / 5 11 4 <-- Height 4 バイナリツリーの高さ:4 二分木の定義 ツリーは、符号付き整数値と、他の2つのツリーまたはそれらへのポインターを含むオブジェクトです。 二分木構造体の構造は次のようになります。 typedef struct tree { struct tree * l; struct tree * r; int v; …

5
バイナリツリーを印刷する
SOに関する最近の質問に触発され... 次の形式でバイナリツリーを印刷する関数を作成します。 3 / \ 1 5 \ / \ 2 4 6 出力は、ノードの行、それに続く関係の行/と\文字、ノードの行などで構成されます。 すべてのノードが単一の文字として表現可能であると想定できます。 最下位レベルの隣接ノードは、少なくとも1つのスペースで区切る必要があり、さらに上位のノードは必要に応じて区切る必要があります。 2つの子を持つノードは、直接の子の真ん中に正確に配置する必要があります。 関係のスラッシュは、親と適切な子の中間にある必要があります(どの方法でも)。 入力: 入力は関数の引数として提供されます。ツリーの正確な構造は指定しませんが、実際のバイナリツリーとして使用できる必要があります。「予想される出力のように見える文字列として、私のプログラムでツリーが表されていません」。 出力ストリームに出力するか、選択した出力を含む文字列を返すことができます。 最短のコードのポイントですが、90%の作業の短いソリューションよりも完全に機能する長いソリューションの方がずっと好きです。 報奨金の更新: 賞金のために、私(オプティマイザー)はわずかな変更を行っています: 入力は、STDIN、ARGV、または関数引数からのものです。 出力はSTDOUT(またはconsole.logJS)にある必要があります たとえば、入力は配列形式であると想定できます。[1,2,3]または[1 2 3] 更新2-バイナリツリーは実際にはバイナリ検索ツリーである必要があります。最初にこれについて言及しなかったため、ユーザーが通常の配列をバイナリ検索ツリー配列に変換することを別個のプログラムとして扱うことができ、最終的なバイトカウントは、プログラムが配列を引数として取り込んで印刷するためのものです二分木のような。

1
正規表現の検証正規表現[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 去年閉鎖されました。 入力として正規表現文字列を受け入れ、それが有効かどうかを確認する正規表現を作成します。基本的に、正規表現はそれ自体を検証できるはずです。(無効な正規表現は検証されないため、使用できません.*。;) フレーバーは、よく知られている実装(Perl、sed、grep、gawkなど)によって完全にサポートされている必要があり、それらの実装がサポートするものを完全にサポートしている必要があります。[弁護士が話すことを心配しないでください。私は、スマート***の可能性のある抜け穴を削除しようとしています。] 私はそれをコードゴルフしたいと思いますが、機能が豊富ではないフレーバーを知って使用している人々に優位性を与えるのではないかと心配しています。または、私の心配は根拠がありませんか?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

7
バイナリツリーの回転
バランスの取れたバイナリ検索ツリーは、O(log n)ルックアップ(または同様の操作)を保証するために不可欠です。多数のキーがランダムに挿入および/または削除される動的環境では、ツリーがルックアップにとって恐ろしいリンクリストに縮退する場合があります。したがって、この効果に対抗するさまざまな種類の自己バランス型バイナリツリー(AVLツリーやスプレイツリーなど)があります。これらのツリーは、ツリーのバランスを再調整するさまざまな種類の回転に基づいています。 回転 この課題では、単一の右回転のみを見ていきます。そのような回転(左回転は対称)は次のようになります。 5 3 / \ / \ 3 6 => 1 5 / \ / \ 1 4 4 6 葉のいずれか1、4または6左または右のサブツリーがある場合、回転は単にそれらをそこに保持します。これがより大きなツリーのサブツリーである場合、ノードで単に「切断5」し、回転したツリー(現在のノード3)をそのノードに「再接続」します。 チャレンジ バイナリ検索ツリー1とキーを指定すると、上記のようにそのノードでツリーが右回転します。上記の例で提供されるキーはになります5。 ルールとI / O 選択したキーとテストケースのキーの間に全単射がある限り、任意のタイプのキーを使用できます。 [3,[]]あいまいさがなければ(たとえば、特に指定しない限りあいまいです)、選択した言語に自然な限り、バイナリツリーの表現を選択できます。 入力は常にバイナリ検索ツリーになるため、重複キーはありません あなたはキーがツリーに含まれていると仮定するかもしれません キーを含むノードには左の子があると仮定できます 提供されたキーの下に正しいサブツリーを想定することはできません あなたは、回転の前にツリーがアンバランスであると仮定することはできません 回転後にツリーのバランスが取れているとは思わないかもしれません デフォルトのI / O方式を使用できます あなたの提出は、ツリーを返す関数またはソリューションを印刷する完全なプログラムである可能性があります テストケース これらの例は、次のようなツリーを表します 葉の場合: [] キーxを持つツリーで、両方のサブツリーがリーフの場合:[x] キーxとサブツリーを持つツリーの場合left right:[x,left,right] 最初の例は、セクションRotationsで提供されるものです。何らかの理由でそれらをグラフィカルに表示する必要がある場合は、ここで2に進みます。 5 …

10
バイナリツリーのバランスが取れているかどうかを確認する最短プログラムを作成する
バランスの取れたバイナリツリーの各ノードでは、左の子サブツリーと右の子サブツリーの高さの最大差は最大1です。 二分木の高さは、ルートノードからルートから最も遠いノードの子までの距離です。 以下に例を示します。 2 <-- root: Height 1 / \ 7 5 <-- Height 2 / \ \ 2 6 9 <-- Height 3 / \ / 5 11 4 <-- Height 4 バイナリツリーの高さ:4 以下は、二分木とそれらがバランスされているかどうかに関するレポートです。 上記のツリーは不均衡です。 上記のツリーはバランスが取れています。 バイナリツリーのルートを入力として受け入れ、ツリーのバランスが取れていない場合はfalsey値を返し、ツリーのバランスが取れている場合はtrue値を返す、可能な限り最短のプログラムを作成します。 入力 バイナリツリーのルート。これは、ルートオブジェクトへの参照の形式でも、バイナリツリーの有効な表現であるリストの形式でもかまいません。 出力 真理値を返します:ツリーのバランスが取れている場合 falsey値を返します。ツリーのバランスが取れていない場合。 二分木の定義 ツリーは、値と2つの他のツリーまたはそれらへのポインターを含むオブジェクトです。 バイナリツリーの構造は次のようになります。 typedef struct T { …

12
バイナリブランチ
2進数が与えられた場合、あなたの仕事はその深さ2の「分岐」を作成することです。 たとえば、0入力として指定された場合、これを正確に出力する必要があります。 /000 /00 / \001 0 \ /010 \01 \011 これは、ブランチがどのように作成されるべきかをかなり自明であるはずです。深さ2は、最大2桁までの数の分岐を計算することを意味します。また、上にゼロを、下に1を使用して、分岐を順番に計算します。 その他のテストケース: 0 /000 /00 / \001 0 \ /010 \01 \011 1 /100 /10 / \101 1 \ /110 \11 \111 00 /0000 /000 / \0001 00 \ /0010 \001 \0011 01 /0100 /010 / \0101 01 \ …

12
ソートされた整数のリストからバランスの取れたBSTを作成する
一意のソートされた整数のリストを指定して、再帰を使用せずに配列として表されるバランスの取れたバイナリ検索ツリーを作成します。 例えば: func( [1,2,3,5,8,13,21] ) => [5,2,13,1,3,8,21] 始める前に、ヒント:この問題を1トン単純化し、入力整数(またはその点で同等のオブジェクト)を実際に考慮する必要がないようにします。 入力リストが既にソートされていることがわかっている場合、そのコンテンツは無関係です。元の配列へのインデックスの観点から単純に考えることができます。 入力配列の内部表現は次のようになります。 func( [0,1,2,3,4,5,6] ) => [3,1,5,0,2,4,6] これは、比較可能なオブジェクトを処理する必要があるものを記述するのではなく、範囲[0、n)から結果の配列にマップする関数を記述するだけでよいことを意味します。新しい順序を取得したら、入力の値にマッピングを適用して戻り配列を作成できます。 有効なソリューションは次の要件を満たす必要があります。 ゼロ要素配列を受け入れ、空の配列を返します。 長さnの整数配列を受け入れ、整数配列を返します nから2マイナス1の次に高い累乗の間の長さ(たとえば、入力サイズ13の場合、13から15の間のいずれかを返します)。 ルートノードが位置0にあり、高さがlog(n)に等しいBSTを表す配列。0は欠落ノード(またはnull言語で許可されている場合は-like値)を表します。空のノードは、存在する場合、のみ(例えば、木の端部に存在しなければなりません[2,1,0]) 入力整数配列には、次の保証があります。 値はゼロより大きい32ビット符号付き整数です。 値は一意です。 値は、位置ゼロから昇順です。 値はまばらかもしれません(すなわち、互いに隣接していない)。 ASCII文字カウントによる最も簡潔なコードが優先されますが、特定の言語向けのエレガントなソリューションを見ることにも興味があります。 テストケース 含む単純なアレイの出力1にn種々のためn。上記のように、末尾0のsはオプションです。 [] [1] [2,1,0] [2,1,3] [3,2,4,1,0,0,0] [4,2,5,1,3,0,0] [4,2,6,1,3,5,0] [4,2,6,1,3,5,7] [5,3,7,2,4,6,8,1,0,0,0,0,0,0,0] [6,4,8,2,5,7,9,1,3,0,0,0,0,0,0] [7,4,9,2,6,8,10,1,3,5,0,0,0,0,0] [8,4,10,2,6,9,11,1,3,5,7,0,0,0,0] [8,4,11,2,6,10,12,1,3,5,7,9,0,0,0] [8,4,12,2,6,10,13,1,3,5,7,9,11,0,0] [8,4,12,2,6,10,14,1,3,5,7,9,11,13,0] [8,4,12,2,6,10,14,1,3,5,7,9,11,13,15]

11
緩い範囲の解釈
緩い範囲の解釈 ListSharpは、多くの機能を備えたインタープリター型プログラミング言語です。これらの機能の1つは、次のように機能する1つのインデックスベースの範囲作成者です。 あなたはと範囲を定義する(INT) TO (INT)か、単に(INT)どこの両方または単一のintは分からに行くことができる最大のint32値 次に、これらの範囲を使用して、境界を超えることを恐れずに配列の要素を抽出できます したがって: 1 TO 5 生成: {1,2,3,4,5} 3 生成: {3} AND演算子を使用して範囲を追加できます 1 TO 5 AND 3 TO 6 生成: {1,2,3,4,5,3,4,5,6} これは負の数でも機能することを忘れないでください 3 TO -3 生成: {3,2,1,0,-1,-2,-3} 課題は次のとおりです。 入力 文字配列および文字列として以前に定義された範囲句 出力 1インデックスの要素は範囲の位置に基づいています(非既存/負のインデックスは空の文字に変換されます) 勝つ方法 コードゴルフの挑戦として、あなたは勝つために最短のバイト数でプログラムを作成することになっています 空の文字は存在しないことが指摘されているため、無視する必要があります(ここでは、わかりやすくするためだけに示しましたが、混乱させています) テストケース: input array is: {'H','e','l','l','o',' ','W','o','r','l','d'} range clause: "1 TO 3" …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

5
バイナリツリーを解放する
したがって、コンピューターサイエンスの基本的な概念を読む前に。 バイナリツリーは、動的に割り当てられた構造です(通常、順序付けられたストレージに使用されます)。 その性質のため、バイナリツリーの走査は通常再帰的です。 これは、ループの2つの方法がある場合、(ループを介した)線形トラバーサルが自然ではないためです。 再帰的:これは、それ自体を呼び出す関数を意味します。 昔ながらの言語では、メモリ管理には手動のメモリ管理が必要です。 マニュアル:自分でやらなければならないことを意味します。 手動でメモリ管理を行う場合、実際にツリーの各メンバーを解放するように、基礎となるシステムに依頼する必要があります。 無料:メモリをグローバルpoosに回復し、再利用できるようにします。メモリが不足することはありません。 解放:これは、関数free()を呼び出して、回復したいポインターを渡すことによって行われます。 ポインター:仮想スティックのようなものです。最後はメモリです。メモリを要求すると、メモリのあるポインタ(仮想スティック)が与えられます。完了したら、ポインター(仮想スティック)を返します。 再帰的な解決策: freeTree(Node* node) { freeTree(node->left); freeTree(node->right); free(node); } 問題は、再帰は同じ関数を繰り返し呼び出していることを意味するということです。これによりスタックが大きくなります。スタックを大きくすると、より多くのメモリが使用されます。ツリーを解放する理由は、より多くのメモリを使用してメモリを戻す必要があるためです(メモリの両方のビットを取り戻す場合でも)。 最後に質問: したがって、問題の中心は、上記の再帰バージョンを線形ソリューションに変換することです(したがって、メモリを使用する必要はありません)。 ノードタイプを指定します typedef struct Node Node; struct Node { Node* left; Node* right; }; これらのノードのツリーを解放する関数を作成します。 制限事項: 再帰を使用できません(間接的にも) 追跡用のダイナミックスペースを割り当てることができません。 O(n)ソリューションがあることに注意してください 勝者: 最高の複雑さ。 タイブレーク1:最初の送信 タイブレイク2:キャラクターの最小数。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.