この記事は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学生が顔を見せて歌う、この応用は将来に期待される
[[197951]]基本概念このセクションでは、勾配降下法をより一般化するために、機械学習アルゴリズ...
生成型 AI の新たな波に直面して、私たちはそれに積極的に適応するか、AI (または AI を受け入...
CyberArk の 2023 年アイデンティティ セキュリティ脅威ランドスケープ レポートでは...
データの共有と流通が厳格な要求になると、もともと孤立していたビジネス ネットワークは境界を打ち破り、...
たった 900 ドルで四足ロボット犬を DIY できる?スタンフォード学生ロボットクラブの新メンバー...
[[184728]]最近、Data Science Stack Exchange の「ニューラル ネ...
[[423154]]近年、正規化フローモデルは、画像超解像(画像SR)[SRFlow、ECCV20...
[[271684]]ビル・ゲイツは、世界を変えるトレンドを予見し、それを活用することで、史上最も成功...
[[436560]]世界中の IT プロフェッショナルは、膨大なデータに圧倒され、本当に重要な洞察を...
SAM (Segment Anything) は、基本的な視覚セグメンテーション モデルとして、わず...
[[408175]]ここ数年の流行語といえば、エッジ コンピューティングは 5G や AI と密接に...