毎日のアルゴリズム: 二分木の最小共通祖先

毎日のアルゴリズム: 二分木の最小共通祖先

この記事はWeChatの公開アカウント「3分でフロントエンドを学ぶ」から転載したもので、著者はsisterAnです。この記事を転載する場合は、「3分で学ぶフロントエンド」公式アカウントまでご連絡ください。

木の基礎については、こちらをご覧ください: 初心者のための木

バイナリ ツリーが与えられた場合、ツリー内の指定された 2 つのノードの最下位の共通祖先を見つけます。

Baidu 百科事典では、LCA を次のように定義しています。「ルート付きツリー T 内の 2 つのノード p と q の場合、LCA は、x が p と q の両方の祖先であり、x の深さが可能な限り大きいノード x です (ノードはそれ自身の祖先になることもできます)。」

たとえば、次の二分木があるとします: root = [3,5,1,6,2,0,8,null,null,7,4]

例1:

  1. 入力: root = [3,5,1,6,2,0,8, null , null ,7,4], p = 5, q = 1
  2. 出力: 3
  3. 説明: ノード 5 とノード 1 の LCA はノード 3 です。

例2:

  1. 入力: root = [3,5,1,6,2,0,8, null , null ,7,4], p = 5, q = 4
  2. 出力: 5
  3. 説明: ノード 5 とノード 4 の LCA はノード 5 です。定義上、LCA はノード自体になる可能性があるからです。

例:

  • すべてのノード値は一意です。
  • p と q は異なるノードであり、両方とも指定されたバイナリ ツリー内に存在します。

答え: 再帰実装

解決:

ツリーが空のツリーであるか、p または q のいずれかのノードがルート ノードである場合、p と q の最も近い共通ノードがルート ノードになります。

そうでない場合、つまりバイナリ ツリーが空のツリーではなく、p と q がルート以外のノードである場合は、左と右のサブツリーを再帰的にトラバースして、左と右のサブツリーの最も近い共通の祖先を取得します。

  • pノードとqノードが左右のサブツリーのLCAに存在する場合、pノードとqノードが左右のサブツリーのルートノードに分布していることを意味します。このとき、バイナリツリーのLCAはルート
  • 左のサブツリー内のノード p と q の LCP が空の場合、ノード p と q は左のサブツリーに配置され、最終的なバイナリ ツリーの LCP は右のサブツリー内のノード p と q の LCP になります。
  • 右サブツリー内のノード p と q の最新の共通祖先が空の場合、左サブツリー内のノード p と q の最新の共通祖先が空の場合と同じ判断ロジックが適用されます。
  • 左と右のサブツリー内の p ノードと q ノードの最も近い共通祖先が空の場合、null が返されます。

コード実装:

  1. const lowestCommonAncestor =関数(ルート、p、q) {
  2. if(root == null || root == p || root == q)ルートを返す
  3. const left = lowestCommonAncestor ( root.left , p, q)
  4. 定数right = lowestCommonAncestor(root.right , p, q)
  5. if(=== null )戻り値  
  6. if(=== null )戻り値  
  7. ルートを返す
  8. };

複雑性分析:

時間計算量: O(n)

空間計算量: O(n)

<<:  ロンドン警察は大量の顔認識技術を購入している

>>:  人工知能教育の現状と動向

ブログ    

推薦する

メタバースの目!メタの機械式バイオニックアイの特許が明らかになり、バイオニック人体に搭載される予定

ロボットの皮膚、空気圧触覚手袋... Meta は将来のメタバースに、よりリアルな触覚インタラクショ...

触覚を感知し、自己治癒するロボットが現実になりつつある

人間の皮膚は柔軟性があり、触り心地がよく、自己治癒力があるため、複製するのが難しいです。しかし、科学...

「中東のシリコンバレー」として知られるイスラエルはスーパーチップを開発している

「中東のシリコンバレー」と呼ばれるイスラエルはハイテク産業が発達しており、特にチップ産業や半導体技術...

将来、人工知能技術は動物実験に取って代わる可能性を秘めているのでしょうか?

動物実験は動物に対して行われる最も残酷な行為の一つと考えられています。研究によると、マウス、カエル、...

ディープラーニングの父が懸念:データ漏洩、AI兵器、批判の欠如

[[254553]]マーティン・フォードは2015年に出版した『ロボットの台頭』で大きな話題を呼びま...

Google の大きな暴露: 謎の AI ツールが明らかに、Gemini が PaLM 2 に取って代わる

「大リーク:コードネームStubbsというGoogleの謎のAIツールが暴露された」と、Xという名の...

PyTorch ガイド: ディープラーニング モデルのトレーニングを高速化する 17 のヒント!

PyTorch でディープラーニング モデルをトレーニングする場合、モデルのトレーニングを高速化す...

...

世界最大の公開顔データセット | 清華大学と信義科技が共同リリース

[[387945]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

年間100万ドルの給料でも、このタイプの才能のギャップを埋めることはできません。 AI業界も「人手不足」

年収100万の仕事に就くことを夢見たことがありますか?人工知能業界に参入して、あなたの夢を現実にしま...

IBM、GPUに匹敵する新しいニューラルネットワークチップを開発

本日 Nature 誌に掲載された論文で、IBM Research のポスドク研究員 Stefano...

2024 年の CIO の 14 の優先事項とトレンド

GenAI は 2024 年の最大のテクノロジー トレンドとなり、新しいツールのレビュー、インフラス...

ChatGPT パラメータが 200 億しかないとは思いませんでした。

ChatGPT の核心的な秘密が Microsoft によってこのように暴露されるとは誰も予想して...

シリコンバレーの大企業も「名門校の学位」を重視するのでしょうか? Redditの男の魂を問う質問が白熱した議論を巻き起こす

シリコンバレーの大企業からのオファーは多くのプログラマーにとって依然として非常に魅力的であり、今年は...