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

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

[[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とコンテキスト脅威インテリジェンスが防衛戦略を変革

企業がサイバーセキュリティに対するプロアクティブなアプローチである脅威露出管理を導入するケースが増え...

機械学習による分類とその応用を理解するための図

機械学習は主に教師あり学習、教師なし学習、強化学習に分けられます。ただし、各手法の適用分野はそれぞれ...

GPT-5が稼働を開始しました!ウルトラマン:月7億では足りない。マイクロソフトがもっと投資してくれることを願う

月収7億元でもGPTのトレーニングへの巨額の投資を賄うことはできません。これはOpenAIのCEO、...

Rocket Launch: 効率的で軽量なネットワーク トレーニング フレームワーク

まとめクリックスルー率の推定などのオンラインリアルタイム応答システムでは、応答時間に関して非常に厳し...

リスト発表:海雲捷雲の田良氏が「2021年科学技術影響力のある人物賞」を受賞

著名なIT技術メディア51CTOが主催する第16回中国企業年次選考活動「IT印象:イノベーションの活...

マット・カッツのブログ投稿: Google のアルゴリズムの最新の変更点 10 件

Google が今年の夏に関連ビデオを公開したことに続くもの。昨日、Google の主任検索エンジニ...

2022年の自動運転のトップ10トレンドが発表されました。データインテリジェンスシステムは、自動運転の商用化のクローズドループの鍵となるでしょうか?

「2022年は自動運転産業の発展にとって最も重要な年となるだろう。乗用車の運転支援分野での競争は正...

AI技術により人類の寿命が延びる

現在、50歳以上の人口は世界で最も急速に増加している年齢層となっており、当然ながら世界経済と医療制度...

TSの父による新しいプロジェクトTypechatはフロントエンドの未来を告げる

みなさんこんにちは、カソンです。過去 2 年間、フロントエンド コミュニティ全体が主に 2 つの理由...

ディープラーニングに基づくターゲット検出ネットワークが誤検出を起こす可能性がある理由と、ターゲット検出の誤検出問題を最適化する方法について説明します。

顔検出などの物体検出用のディープラーニング ネットワークにとって、誤検出は非常に厄介なものです。犬を...

AIの実践、Pythonを使って自動運転を体験しよう!

設置環境Gym は、強化学習アルゴリズムの開発と比較のためのツールキットです。gym ライブラリとそ...

AIキャンパス採用プログラマーの最高給与が明らかに!テンセントは年俸80万元でトップで、北京戸口を提供している。

[[213294]]写真はインターネットからアルゴリズム関連人材の市場では、需要と供給の不均衡が深...

大規模モデルにAI管理ルールを組み込む時代が到来

中国サイバースペース管理局と他の7つの部門が共同で発行した「生成人工知能サービスの管理に関する暫定措...

ChatGPT Plusアカウント登録が停止されました!ネットユーザーは激怒、アカウントの売買やレンタルがネットワーク全体で高騰中

ちょうど今、サム・アルトマンがXで衝撃的なニュースを発表しました—— ChatGPT Plusアカウ...