この記事は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:
例2:
例:
答え: 再帰実装 解決: ツリーが空のツリーであるか、p または q のいずれかのノードがルート ノードである場合、p と q の最も近い共通ノードがルート ノードになります。 そうでない場合、つまりバイナリ ツリーが空のツリーではなく、p と q がルート以外のノードである場合は、左と右のサブツリーを再帰的にトラバースして、左と右のサブツリーの最も近い共通の祖先を取得します。
コード実装:
複雑性分析: 時間計算量: O(n) 空間計算量: O(n) |
[[397388]]画像はPexelsより私は2007年に卒業してすぐにGoogleで3年間働きま...
ChatGPTの登場以来、OpenAIが使用するトレーニング方法である人間によるフィードバックによる...
著者についてCtrip のシニア モバイル開発エンジニアである Leo は、クロスエンド テクノロジ...
機械学習と AI タスクの実行方法や環境内でのデータの収集方法に応じて、組織はどの AI ストレージ...
人工知能(AI)は、現在世界で最も革新的で影響力のある技術の1つであり、さまざまな分野や産業に浸透し...
言語モデルはさまざまな NLP タスクで目覚ましい成功を収めていますが、その推論能力は不十分な場合が...
[[409431]]動的計算グラフディープラーニングに PyTorch を使用する主な理由の 1 つ...
[51CTO.com オリジナル記事] 古代の皇帝はハーレムに3000人の美女を抱えていたことは誰...