日常アルゴリズムのパスの合計について話す

日常アルゴリズムのパスの合計について話す

[[426794]]

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

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

バイナリ ツリーとターゲットの合計が与えられた場合、ツリー内のルート ノードからリーフ ノードへのパスが存在するかどうか、およびこのパス上のすべてのノード値の合計がターゲットの合計と等しいかどうかを判断します。

注: リーフ ノードは子ノードを持たないノードです。

例: 次の二分木があり、目標の合計が 22 の場合、

  1. 5
  2. / \
  3. 4 8
  4. // \
  5. 11 13 4
  6. / \ \
  7. 7 2 1

ルート ノードからリーフ ノードへのパス 5->4->11->2 があり、ターゲットの合計が 22 であるため、true を返します。

解決:

ツリー全体を横断するだけ

現在のノードがリーフ ノードでない場合は、そのすべての子ノードを再帰的に処理し、渡されるパラメーターは合計から現在のノード値を引いた値になります。

現在のノードがリーフ ノードの場合、パラメーターの合計が現在のノード値と等しいかどうかを判断します。等しい場合は true を返し、そうでない場合は false を返します。

コード実装:

  1. var hasPathSum =関数(ルート、合計) {
  2. // ルートノードは空です
  3. (ルート === null )の場合、戻り値 間違い;
  4.    
  5. // リーフノードと合計パラメータはリーフノードの値に等しい
  6. root.left === null && root.right === nullの場合 root.val === sumを返します
  7.  
  8. // 合計から現在の値を減算し、再帰します
  9. 合計=合計- ルート.val
  10. hasPathSum(root.left , sum ) || hasPathSum(root.right , sum )を返します
  11. };

解決:

ツリー全体を横断するだけ

  • 現在のノードがリーフ ノードでない場合は、そのすべての子ノードを再帰的に処理し、渡されるパラメーターは合計から現在のノード値を引いた値になります。
  • 現在のノードがリーフ ノードの場合、パラメーターの合計が現在のノード値と等しいかどうかを判断します。等しい場合は true を返し、そうでない場合は false を返します。

コード実装:

  1. var hasPathSum =関数(ルート、合計) {
  2. // ルートノードは空です
  3. (ルート === null )の場合、戻り値 間違い;
  4.    
  5. // リーフノードと合計パラメータはリーフノードの値に等しい
  6. root.left === null && root.right === nullの場合 root.val === sumを返します
  7.  
  8. // 合計から現在の値を減算し、再帰します
  9. 合計=合計- ルート.val
  10. hasPathSum(root.left , sum ) || hasPathSum(root.right , sum )を返します
  11. };

リートコード: https://leetcode-cn.com/problems/path-sum/solution/javascript-lu-jing-zong-he-by-user7746o/

<<:  2022 年の優れたインテリジェント オートメーションのトレンドと予測

>>:  予想外?今年の建国記念日に最も多く目にするのはドローンかもしれません!

ブログ    
ブログ    
ブログ    

推薦する

XiaoIceが超自然音声技術をリリースし、シリーズA資金調達の完了を発表

7月12日、XiaoIce社は新たな超自然音声技術をリリースした。この技術により、AI 音声の自然さ...

ビジネスリーダーがLLMを活用して新たな機会を創出できる5つの方法

一般的に、AIGC とは、人間が作成したコンテンツに非常によく似た画像、音楽、テキストなどのコンテン...

未来を変える5つのAIトレンド

人工知能は、今の世代で最も話題になっているトピックです。人工知能は、20年後の世界がどのように発展す...

...

AIはディープフェイクの世界から人々を救うことができるのか

業界の専門家マイク・エルガンが、偽造における人工知能の役割について説明します。例えば、彼はこう語った...

Appleがニュース編集者を雇っているにもかかわらず、アルゴリズムがあなたが読むものを決定する

[[137024]]読むものを決めるのがメディアではなく、モバイル アプリケーションやソーシャル ネ...

Java プログラミング スキル - データ構造とアルゴリズム「ハフマン コーディング」

基本的な紹介ハフマン符号化は、(ハフマンコーディング) とも訳されます。ハフマン符号化は、ハフマンコ...

「宝くじ仮説」の著者による新しいPyTorchライブラリは人気があり、モデルのトレーニングが2〜4倍高速化されます。

さまざまなタスクに人工知能を導入する企業が増えるにつれ、AI モデルのトレーニングはコストがかかり、...

RSA アルゴリズムが解読された場合、暗号化の将来はどうなるでしょうか?

インターネットのセキュリティ層に一夜にして巨大な亀裂が生じたらどうなるか考えたことがありますか? 亀...

脳コンピューターインターフェース技術は本当に人気がある

[[274622]]参加者は脳波計を装着し、コンピューターの画面を見つめながら、急速に点滅するターゲ...

研究者は人工知能を使って交通事故を事前に予測する

研究者らは、過去の衝突データ、道路地図、衛星画像、GPS に基づいてディープ モデルをトレーニングし...

数学者を助けたいなら、人工知能の意味は何でしょうか?

AIに対して幻想を抱いている人もいれば、偏見を持っている人もいます。 AIはツールとコンピューティ...

機械学習が金融業界に与える影響

過去 10 年間で、金融業界ではこれまでにない最先端のテクノロジーが数多く導入されました。この変化は...

...