この記事は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学生が顔を見せて歌う、この応用は将来に期待される
説明する各ブラウザテストから取得されるデータは異なります。たとえば、Chrome を使用してテストす...
[[197632]]機械学習が価値を変革するための最も重要なステップは何ですか?ビジネス上の問題に...
[[437395]]今日の強化学習 (RL) には、収束性が低いなど多くの問題があります。比較的弱い...
[51CTO.com クイック翻訳]関連調査レポートによると、デジタルフィットネス市場の規模は202...
2023年末、ニューヨーク・タイムズはマイクロソフトとOpenAIを訴えるための強力な証拠を提示し...
コンシステント ハッシュ アルゴリズムは、1997 年にマサチューセッツ工科大学によって提案された分...
最近、別の若い中国人男性が、22年間存在していたバグを修正したことでインターネット上で人気を博した。...
[[441550]] Connect 2021カンファレンスで、ザッカーバーグ氏はFacebook...
10月23日、中国医学では2000年以上もの間、人の舌の色や形を観察して病気を診断してきたと報じら...
製造業における自動化の推進力は非常に単純です。自動化は人間の作業をシミュレートするため、人間は製造バ...
近年、ディープラーニングの分野における畳み込みニューラルネットワーク(CNN または ConvNet...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
執筆者 | Yan Zheng制作:51CTO テクノロジースタック(WeChat ID:blog)...
ロボティック・プロセス・オートメーションは現在、業界全体のデジタル化を推進するデジタル変革の中核とな...