アルゴリズム: 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はサイバーセキュリティにおいて人間に取って代わるでしょうか?両者は対立していない

ブログ    
ブログ    

推薦する

...

Tantan Pan Ying: アルゴリズムベースの「額面」ソーシャル プラットフォームを作成する方法

編集者注: 「女性が風邪をひかずに舞台を降りられるのは素晴らしいことだ。そして、心が情熱で満たされる...

教師なし学習のためのアンサンブル法: 類似度行列のクラスタリング

機械学習において、アンサンブルという用語は、複数のモデルを並行して組み合わせることを指します。その考...

...

人工知能の実用化を加速させるには

人工知能と機械学習ソリューションは、今日、さまざまな業界の組織で一般的になりつつあります。組織が A...

人工知能とビッグデータの時代において、一般の人々はどうやってお金を稼ぐのでしょうか?

将来、旅行には自動運転車、食事にはプログラムされたスナックストリート、ヘアカットにはロボット理髪師、...

ビジネス インテリジェンス戦略を成功させるための 8 つの重要な要素

ジャクソン氏は過去 8 年間にわたり、このプロジェクトを成熟させるために、社内の他の幹部と協力してき...

...

機械学習の落とし穴を避ける: データはアルゴリズムよりも重要

ユーザー行動分析とネットワーク脅威検出、新たな波が起こり続けています。セキュリティ データ分析は、状...

中国の博士課程の学生が、2つのトランスフォーマーを使ってGANを構築しようとした。

[[382526]]最近、CV 研究者は変圧器に大きな関心を示し、多くのブレークスルーを達成しまし...

...

...

Amazon Web Services は、5 つのステップで企業の生成 AI の実現を支援します。

アマゾンのCEO、アンディ・ジャシー氏はかつて、アマゾン ウェブ サービスの目標は、誰もが大企業と同...

...

人工知能の応用、開発、影響についての考察

ケンブリッジ大学人工知能研究センターは、人工知能によってもたらされる新しい能力とそれが直面するリスク...