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

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

[[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導入が難しい理由

私たちはほぼ毎日、人工知能と医療業界におけるその応用に関する最新の記事を読んでおり、医療機関などのク...

NeRFは線画に基づいてリアルな3D顔を生成し、詳細とスタイルを自由に変更できる。この論文はSIGGRAPHに提出されている。

非常にリアルで正確に制御可能な 3 次元の顔のモデリングは、デジタル ヒューマン構築における重要な課...

機械学習アルゴリズム入門: 線形モデルからニューラルネットワークまで

最近、「機械学習」という言葉をよく耳にするようになりました(通常は予測分析や人工知能の文脈で)。過去...

Keras+LSTM+CRF を使用した固有表現抽出 NER の練習

[[339715]]テキスト分割、品詞タグ付け、固有表現認識は、自然言語処理の分野では非常に基本的な...

2021年の主なAIトレンド:AIチップスタートアップのM&Aの可能性

人工知能 (AI) と機械学習は、テクノロジーの意思決定者、業界の専門家、投資家にとって引き続き注目...

基礎ゼロでもわかる人工知能入門

今日の IT 界で最もホットなテクノロジーについて語るとき、人工知能について触れなければなりません。...

困難な選択のターミネーター: さまざまな問題に対する機械学習アルゴリズム

データサイエンスを学び始めた頃、特定の問題に対してどのアルゴリズムを選択すればよいのかという疑問によ...

ハイブリッドエキスパートの限界を押し上げる: わずか 0.32% のパラメータ更新でモデルを微調整

ご存知のとおり、大規模なモデルのトレーニングにはコストがかかりますが、事前トレーニング済みのモデルを...

2020 年に人気の機械学習プロジェクト トップ 10

2021 年が始まりました。過去 1 年間で機械学習コミュニティでは多くの出来事がありました。時間...

...

KDnuggets 公式調査: データ サイエンティストが最もよく使用する 10 のアルゴリズム

[[174162]]最新の KDnuggets 調査では、データ サイエンティストが最もよく使用する...

来年のビジネス インテリジェンスの見通しはどうでしょうか?

インテリジェント テクノロジーの使用が拡大するにつれて、ビジネス インテリジェンスの最新動向を常に把...

速度は数十倍に向上。たった1枚の写真と1つの文章だけで、Googleの新しいモデルは20秒で顔を変えることができる。

以前、Googleとボストン大学の研究者は、DreamBoothと呼ばれる「パーソナライズされた」テ...

医療製造におけるビジョンテクノロジー

現代医学の世界では、大きな役割を果たす小さな成分が 1 つあります。この成分は、血管造影などの処置中...

中国のAIチップ「覚醒」の5年

10 種類以上のチップが発売され、多くの合併や買収が行われています。これは、過去 500 日間の中国...