この記事は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学生が顔を見せて歌う、この応用は将来に期待される
[[400577]] AS(5): RSA-PSSアルゴリズムの紹介2018 年にリリースされた T...
アリババのナレッジグラフの助けにより、アリババの電子商取引プラットフォームの管理と制御は、以前の「巡...
モバイル AI は、すでにペースが速いモバイル アプリ開発の世界に混乱をもたらしています。 2020...
ディープラーニングは計算集約型の分野であり、GPU の選択によってディープラーニングの実験が根本的に...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
この記事は、カーネギーメロン大学の Dana Van Aken、Andy Pavlo、Geoff G...
[[202722]] 2005年、JJ Linは「Number 89757」で「人間を模倣した機械...
最近、NVIDIA チームは、8T トークンでトレーニングされた 150 億のパラメータを持つ新しい...
fastcompany によると、最近登場した 2 つの機械翻訳システムは、人間が翻訳したテキストか...
コミュニティは常に Facebook のハードウェア研究に細心の注意を払ってきました。本日の Ope...
【51CTO.comオリジナル記事】この記事では主に、フレームワークの概要、システム アーキテクチャ...
JLLの新しいレポートによると、人工知能の需要とクラウドサービスの継続的な導入により、データセンター...
進化し続けるテクノロジーの世界において、魅力的であると同時に不安も抱かせる概念の出現が、スーパー人工...