アルゴリズム: 2つの順序付きリンクリストをマージする

アルゴリズム: 2つの順序付きリンクリストをマージする

[[414979]]

この記事はWeChatの公開アカウント「3分でフロントエンドを学ぶ」から転載したもので、著者はsisterAnです。この記事を転載する場合は、「3分で学ぶフロントエンド」公式アカウントまでご連絡ください。

2 つの昇順リンク リストを新しい昇順リンク リストにマージして返します。新しいリンク リストは、指定された 2 つのリンク リストのすべてのノードを連結することによって構築されます。

例:

  1. 入力: 1->2->4、1->3->4
  2. 出力: 1->1->2->3->4->4

答え:

問題を解決するためのデータ構造を決定する: 単方向リンクリスト

解決策を決定します。リンク リストの先頭から比較を開始します。l1 と l2 は順序付けられ、増加しているため、l1.val と l2.val の小さい方の値が、結合されたリンク リストの最小値になります。2 番目に小さい値は、小さいノードの next.val と大きいノードの val の小さい方の値です。l1 と l2 が両方とも null になるまで、このプロセスを再帰的に繰り返します。

描画の実装: 描画は理解を助ける

境界条件を決定します。再帰的にリンク リストに到達し、それが null の場合、再帰を続行せずに、別のリンク リストの次をポイントします。

コード実装:

  1. 関数mergeTwoLists(l1, l2) {
  2. l1 === null場合
  3. l2を返す
  4. }
  5. l2 === null場合
  6. l1を返す
  7. }
  8. l1.val <= l2.val の場合 {
  9. l1.next = 2つのリストをマージします(l1.next l2)
  10. l1を返す
  11. }それ以外{
  12. l2.next = 2つのリストをマージします(l2.next l1)
  13. l2を返す
  14. }
  15. }

出典: https://github.com/sisterAn/JavaScript-Algorithms

<<:  Linux オブジェクトアロケータ スラブアルゴリズム

>>:  AIはサイバーセキュリティにおいて人間に取って代わるでしょうか?両者は対立していない

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

認知システムが機械学習とセマンティック技術を組み合わせるべき理由

ワインとチーズの組み合わせを識別するのに役立つアプリケーションを構築したいとします。最も優れたパフォ...

人工知能の代表的な応用分野トップ10の一覧と技術原理の図解

[[329146]]この記事では、「アルゴリズム」という単語を非常に簡略化して使用し、単一のアルゴリ...

...

...

AIがあなたが何歳で死ぬかを予測?トランスフォーマーの「占い」がネイチャーのサブジャーナルに掲載され、事故死の予測に成功

AIは本当に科学的に占いができるんですね! ?デンマーク工科大学(DTU)の研究者らは、各人の死亡の...

AIが品質保証を向上させる6つのヒント

品質保証(QA)は多くの企業にとって重要な関心分野です。企業やサービスプロバイダーが高い品質を維持す...

...

...

人工知能がチップのルネッサンスを推進

半導体はデジタル時代の基盤技術です。アメリカのシリコンバレーの名はこれに由来しています。過去半世紀に...

今日の人工知能はすでに販売業界に混乱をもたらしている

人工知能と機械学習は現在では導入が容易であり、現在実行されている反復的なタスクやプロセスの多くを自動...

IoTミツバチ:私たちの未来を救う技術

ミツバチは植物から植物へと飛び回って餌を探しながら、受粉という重要な役割も担っています。しかし、過去...

暗唱することは理解を意味するわけではない。ビッグモデルの背後にある知識の蓄積と抽出の詳細な分析

モデルのサイズが大きくなるにつれて、大規模なモデルが大量の知識を習得できる方法を模索し始めます。一つ...