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

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

この記事は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)

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

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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

...

Google DeepMindが復讐のために力を合わせる!ジェフ・ディーンとハサビスが1万語の記事で2023年のジェダイの反撃を要約

Google DeepMind、論文を提出してください!ちょうど今、ジェフ・ディーン氏とハサビス氏は...

ChatGPTを使用して、書類手続き全体を迅速に完了します

1. 論文のテーマに関する詳細な議論質の高いトピック選択は、トップクラスのジャーナルに論文を掲載する...

...

[ディープラーニングシリーズ] PaddlePaddle と Tensorflow を使用したクラシック CNN ネットワーク Vgg の実装

先週は、古典的な CNN ネットワーク AlexNet が画像分類に与える影響についてお話ししました...

...

Alibaba Cloud が Tongyi Qianwen 2.0 をリリース、パフォーマンスが加速して GPT-4 に追いつく

2023年杭州雲奇大会において、アリババクラウド最高技術責任者の周景仁氏は、数千億のパラメータを持つ...

...

エンタープライズ向け人工知能プラットフォームの選択ガイド

企業における人工知能の応用はますます広範になってきており、産業化される可能性もあります。既存のデータ...

トニー先生に別れを告げる:海外の専門家が流行中に独自の美容ロボットを製作

パンデミック中にどうやって髪を切っていますか?どうやって見た目を維持していますか?多くの人がオンライ...

...

人工知能がスマートファクトリーにもたらす力

現在、製造業における人工知能技術の応用が急成長しています。自社にとって適切な人工知能ツールをどのよう...

ビジネスを阻害する 6 つの AI 神話

AI テクノロジーは職場環境に深く浸透しており、単調で反復的な手作業を置き換えるだけでなく、他の仕事...