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

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

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

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

ブログ    

推薦する

世界初の人工知能地震監視システムが始動:1秒以内に正確な推定

最近、中国科学技術大学の研究チームは中国地震局と協力し、世界初の人工知能地震監視システム「スマート地...

モデルを最適化する方法だけを心配する必要はありません。これは機械学習のすべてではありません。

[[263282]]機械学習分野の学生、研究者、企業の開発者は、より高い精度/AUC/mAP など...

最先端の洞察 | ドローン配達が紛失しない理由はここにあります!

Frontier Insights の今号では、ドローンが商品を配送する際に進路を見つけやすくする...

テスラのオプティマスロボットプロジェクトは強化学習などの分野でエンジニアを募集している

テスラは11月1日、強化学習の専門家を含むヒューマノイドロボットプロジェクト「オプティマス」のエンジ...

有機構造の画像を分子構造に変換するトランスフォーマーベースの人工ニューラルネットワーク

人類は人工知能の時代に突入しています。化学もまた、ニューラル ネットワークのトレーニングに大量の定性...

ロボットは人間の笑顔を真似することができますが、この笑顔はいつも...

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

新しい AI スキル: 芸術の分類と鑑賞

芸術作品の分類と分析は難しいことで知られており、ごく少数の専門家だけが発言権を持ち、この分野への人工...

「深く」「鮮明に」見る - 画像の超高精細化におけるディープラーニングの応用

[[426283]]毎日肖像画を模写する練習を続けた結果、この芸術家はいくつかの重要な特徴だけを描い...

ディープラーニングと自動テキスト要約が出会うとき

[[198984]]導入近年のテキスト情報の爆発的な増加により、人々はニュース、ブログ、チャット、レ...

自動運転におけるマルチモーダル融合認識アルゴリズムを説明する記事

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

世界の自動運転事故を比較することで、そのデータと真実が明らかになった。

最近起きた自動車事故は、被害者の身元が明らかになったこと、運転支援技術の台頭と普及、中国の有名自動車...

機械学習はクラウドネイティブセキュリティの未来

クラウドネイティブ アーキテクチャを使用することで、企業はアプリケーションの開発時間を短縮し、低コス...

NLPは単語を分割せずに実行できます。ハルビン工科大学の最新モデルは、複数のタスクでBERTに勝ちました

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

新しい時代を受け入れよう: スマートホームが贅沢な生活を再定義する

イノベーションとテクノロジーの時代において、贅沢な暮らしはスマートホームによって変化しています。これ...