この記事はWeChatの公開アカウント「3分でフロントエンドを学ぶ」から転載したもので、著者はsisterAnです。この記事を転載する場合は、「3分で学ぶフロントエンド」公式アカウントまでご連絡ください。 木の基礎については、こちらをご覧ください: 初心者のための木 二分木が与えられた場合、それが高さバランスの取れた二分木であるかどうかを判断します。 この問題では、高度にバランスのとれた二分木は次のように定義されます。 バイナリ ツリー内の各ノードの左側のサブツリーと右側のサブツリー間の高さの差の絶対値は 1 を超えません。 例1: 二分木[3,9,20,null,null,15,7]が与えられた場合
true を返します。 例2: 二分木[1,2,2,3,3,null,null,4,4]が与えられた場合
false を返します。 解決策 1: トップダウン (ブルートフォース)解決方法: 各ノードの左サブツリーと右サブツリーの最大高さの差を上から下まで比較します。バイナリ ツリー内の各ノードの左サブツリーと右サブツリーの最大高さの差が 1 以下、つまり各サブツリーのバランスが取れている場合、バイナリ ツリーはバランスの取れたバイナリ ツリーです。 コード実装:
複雑性分析:
解決策2: ボトムアップ(最適化)解決方法: バイナリ ツリー (左ルートと右ルート) の後続のトラバーサルを使用して、下から上へのサブツリーの最大の高さを返し、各サブツリーがバランスの取れたツリーであるかどうかを判断します。バランスが取れている場合は、その高さを使用して親ノードがバランスが取れているかどうかを判断し、親ノードの高さを計算します。バランスが取れていない場合は、-1 を返します。 バイナリ ツリー内の各ノードの左サブツリーと右サブツリーの深さを走査して比較します。
コード実装:
複雑性分析:
|
<<: AIと自動化を活用して機密データを大規模に識別する方法
>>: 清華大学のAI学生が顔を見せて歌う、この応用は将来に期待される
データサイエンスの分野は競争が激しく、人々はますます多くのスキルと経験を急速に身につけています。 「...
発音は言語学習の重要な部分です。 Microsoft Azure Cognitive Service...
人工知能 (AI) を習得したいと考えている企業にとって、AI はコストを節約し、競争上の優位性を獲...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[412098]] [51CTO.com クイック翻訳]キャピタル・ワンのモバイル、ウェブ、会話型...
10月17日午前、百度世界2023大会に、百度創業者のロビン・リー氏が白いシャツを着て落ち着い...
医療画像データと他の日常的な画像との最大の違いの 1 つは、DICOM シリーズ データを扱う場合、...
[51CTO.comからのオリジナル記事] 2018年、人工知能は人類が未来を創造するための最も輝か...
翻訳者 | 朱剛レビュー | Chonglou Midjourney や DALL-E 2 などの拡...