この記事は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学生が顔を見せて歌う、この応用は将来に期待される
医師が患者を治療するための薬を説明するために数文を書くと、AI が必要な薬の正確な構造を自動的に生成...
世界中の企業は、競合他社に対して競争上の優位性を獲得するのに役立つ高度なテクノロジーを常に探していま...
GPT-3.5 の微調整には非常にコストがかかることはよく知られています。この論文では、手動で微調整...
現在、AI が業界で重要な役割を果たしているため、ディープラーニングは重要な研究分野として、意味理解...
それはとても神秘的で、本当にハイエンドで、急速に発展しています!それは私たちの周りにあり、あなたは気...
2021年以降、企業内部者によるデータ侵害、損失、盗難は月平均28%増加しており、回答者の85%は今...
長い間、私の携帯電話のパッケージには主に 400 分の通話時間 + 500M のネットワーク トラフ...
自動機械学習 (AutoML) は、データをモデル化するための機械学習モデルの構築プロセスを自動化す...
ChatGPT の 1 周年に、OpenAI は公式発表を行いました: Sam Altman が O...
人工知能がどのような新しい形で登場するかが話題になっている一方で、教育分野では新たな一連の変化が起こ...
人工知能と機械学習。これらの言葉だけでも、意思決定を行うコンピューターが部署や課全体に取って代わる世...
「Python を学ぶ大きな楽しみの 1 つは、人工知能を学ぶことです。Lao K が GitHub...
[[231414]]会計、税務、監査などの業務でロボットが人間に取って代わったらどうなるか想像してみ...