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

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

[[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 年の優れたインテリジェント オートメーションのトレンドと予測

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

ブログ    

推薦する

LeCun は AGI を予測します: 大規模モデルと強化学習はどちらもランプです!私の「世界モデル」は新しい道です

現代の AI 界で最も有名な巨匠の一人であり、Meta の AI 研究所の魂である Yann LeC...

Java 上級: 負荷分散のための 5 つのアルゴリズムの詳細な理解

この記事はWeChatの公開アカウント「Android Development and Progra...

アルゴリズム学者: 複雑なデータ世界のブラックボックスを開く人々

この記事は、Viktor Mayer-Schönberger と Kennedy Cukier によ...

音声対話とニューラルネットワークで構築された人工知能車両システム「WindLink 3.0」が正式に発売されました

明日のフライトとホテルを予約し、天気を確認する。このようなシナリオは誰もが経験したことがあると思いま...

AIOps が IT 管理を変革する方法

世界がコロナウイルス危機の影響に取り組む中、業界団体は競合するネットワーク リソース、高まるユーザー...

2024 年に向けた 6 つの生成 AI 予測

アナリストの Mike Leone 氏は、オープンソースから規制の変化まで、生成 AI の今後を予測...

顔認証ロック解除を使用するとき、携帯電話はどのようにしてあなたを「認識」するのでしょうか?顔認識について詳しく知る

2020年10月1日、私たちの祖国は71歳の誕生日を迎えました!我が国は、最初の人工衛星の打ち上げか...

2021年チューリング賞発表:高性能コンピューティングの先駆者であり、TOP500スーパーコンピューティングリストの共同創設者であるジャック・ドンガラが受賞

丸一日待った後、ついに答えが明らかになりました!先ほど、2021年のチューリング賞が発表されました。...

LinkedIn が Dagli をオープンソース化し、Java 機械学習ライブラリをリリース

近年では、大規模データ向けのTensorFlow、PyTorch、Caffee、CNTK、Spark...

2019年の中国人工知能産業の競争環境の分析

近年、人工知能の技術と応用は成熟を続けており、人工知能市場の規模は徐々に拡大しています。中国情報通信...

AI 生成コンテンツには著作権がありますか?裁判所はこう判決した

[[312663]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...

サイバーセキュリティにおける人工知能の4つの利点と課題

この記事では、サイバーセキュリティにおける機械学習と人工知能について説明します。 AI の利点と課題...

青島市と銀河水滴が共同でAIアート応用イノベーション実験室を建設

最近、2020年中国(青島)芸術博覧会の期間中、青島の「ダブル募集・ダブル紹介」特別イベントが開催さ...

AIが本当に成功する方法

[[412385]]人工知能は現在、特に自動運転車でより広く深く活用されています。人工知能を使用して...