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

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

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

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

ブログ    

推薦する

AIと拡張現実が職場でどのように進化しているか

[51CTO.com クイック翻訳]職場における支援/拡張現実 (AR) と人工知能 (AI) の潜...

第4世代ロボットが発売。Lingdong TechnologyのAMR分野における粘り強さと革新

AGV と比較すると、V-AMR ロボットの利点は、特にビジネス プロセス、倉庫の変革、展開サイクル...

5G+AIのWin-Win共生、人工知能には大きな可能性があります!

人々が悲観的であろうと楽観的であろうと、人工知能に関する議論は止むことなく、さまざまな論争の中で、人...

Googleの最新のNLPモデルは、パラメータが300分の1しかないのにBERTに匹敵するパフォーマンスを実現

Google は最新のブログ投稿で、テキスト分類タスクで BERT レベルのパフォーマンスを達成でき...

ディープラーニングは壁にぶつかる?ルカンとマーカスの間の争いを引き起こしたのは誰ですか?

今日の主人公は、AI の世界で互いに愛し合い、憎み合う古くからの敵同士です。ヤン・ルカンとゲイリー・...

景勝地ロープウェイのスペアパーツに基づくドローン検査市場の簡単な分析

最近、中秋節と国慶節の連休が近づき、わが国の多くの観光地では、今年、省をまたぐ団体旅行が再開され、観...

K平均法アルゴリズム Java実装 クラスタ分析 681 三国志の将軍

1. k-meansアルゴリズムの紹介: k-means アルゴリズムは入力量 k を受け取り、n ...

アルゴリズム問題演習 - 大規模ブラックリスト IP マッチング

多くの IT 企業では、アルゴリズムは面接で非常に重要な部分を占めていますが、実際の仕事でアルゴリズ...

Google は最新の NLP モデルをオープンソース化しました。このモデルは「罪と罰」の全巻を処理できます。

Transformer は、近年 NLP 分野で注目されているモデルの 1 つです。 2017年、...

Python+AI で古い写真をカラー化

こんにちは、みんな。今日も引き続き、興味深い AI プロジェクトを皆さんと共有したいと思います。前回...

データ時代の金採掘者になりましょう。Analysysアルゴリズムコンペティションがあなたの実力を披露するのを待っています。

もっと多くのアルゴリズムの才能とつながりたいですか?業界の最先端の技術を知りたいですか?インターネッ...

GPT-4 の補完精度はわずか 6% です。北京大学などが、初の「マルチラウンド、マルチモーダル」PPTタスク完了ベンチマークPPTCを提案

大規模言語モデル(ChatGPT や GPT-4 など)に関する最近の評価作業は、主に基本的な自然言...

注目の開発スキル5つについて学ぶ

[[277303]] [51CTO.com クイック翻訳] 開発者は人気のある仕事の 1 つであり、...

なぜ AIoT が将来の主流となるのでしょうか?

エンジニアであれ消費者であれ、AIとIoT技術が私たちの生活にもたらした変化は誰もが感じています。ビ...

MySQL ページング最適化の「ページング アルゴリズムを最適化する INNER JOIN メソッド」はどのような状況で有効になりますか?

最近、偶然にMySQLのページング最適化のテストケースを見ました。テストシナリオを詳しく説明せずに、...