Tag sudah ada dengan nama cabang yang disediakan. Banyak perintah Git menerima nama tag dan cabang, jadi membuat cabang ini dapat menyebabkan perilaku yang tidak diharapkan. Anda yakin ingin membuat cabang ini? Show
Suraj Misra Mengikuti 27 September 2021 · 2 menit membaca · Khusus anggota Menggabungkan Daftar Terurut (Solusi Untuk Masalah Leetcode #21) Solusi Java untuk https. //kode leet. com/problems/merge-two-sorted-lists/
Video YoutubeJika Anda lebih suka format video. https. // www. Youtube. com/watch?v=29RWY7bEq-g Memahami MasalahGabungkan dua daftar dalam satu daftar yang diurutkan. Daftar harus dibuat dengan menyatukan node dari dua daftar pertama Kembalikan kepala daftar tertaut yang digabungkan Contoh 1 Input: list1 = [1,2,4], list2 = [1,3,4] Contoh 2 Input: list1 = [], list2 = [] _Contoh 3 Input: list1 = [], list2 = [0] Kendala
1. Metode Iteratif —dummy = curr = ListNode() Penjelasan -Kami mulai dengan membuat simpul boneka yang akan berguna saat mengembalikan daftar yang digabungkan Sekarang, kita cukup melintasi kedua daftar sampai salah satu atau keduanya habis Jika nilai saat ini dari node list1 lebih kecil dari nilai node list2 saat ini, kami menambahkan node list1 ke pointer berikutnya curr kami, dan pindah ke node berikutnya di list1 Demikian pula, kami menambahkan node list2 ke pointer berikutnya curr kami, dan pindah ke node berikutnya di list2, jika nilai di list2 lebih kecil Setelah ini, kami juga memindahkan node saat ini ke node berikutnya Perulangan while DAPAT berakhir jika kedua daftar habis. Tetapi bagaimana jika kedua daftar itu tidak sama panjangnya? Kami kemudian mengarahkan penunjuk berikutnya dari simpul curr kami ke daftar yang tersisa, karena kami tahu bahwa itu sudah diurutkan Akhirnya, kami mengembalikan simpul berikutnya ke simpul dummy kami yang merupakan awal dari daftar gabungan baru kami Kompleksitas Waktu dan Ruang —Karena kita melintasi daftar hanya sekali, kita dapat mengatakan bahwa kode kita membutuhkan waktu linier untuk dijalankan Juga, kami menggunakan jumlah ruang ekstra yang konstan Jadi, jika m adalah panjang dari list1 dan n adalah panjang dari list2, Kompleksitas Waktu. O(m+n) Kompleksitas Ruang. O(1) 2. Metode Rekursif —if not list1 or not list2: _Penjelasan -Kondisi penghentian rekursi kami adalah ketika salah satu dari daftar tersebut telah habis; Jika nilai node saat ini di list1 lebih kecil dari pada list2, kami memanggil fungsi secara rekursif pada sisa list1 dan seluruh list2 — dan kami menambahkan jawaban ini ke node list1 kami saat ini Jika tidak, kami memanggil fungsi secara rekursif pada list1 dan sisa list2 — dan kami menambahkan jawaban ini ke node list2 kami saat ini Dalam kedua kasus, kami mengembalikan simpul yang berisi angka yang lebih kecil Kompleksitas Waktu dan Ruang —Karena kita melintasi daftar hanya sekali, kita dapat mengatakan bahwa kode kita membutuhkan waktu linier untuk dijalankan Juga, karena tumpukan rekursi menyimpan semua elemen di kedua daftar di beberapa titik, kita membutuhkan ruang ekstra dalam jumlah linier Bagaimana cara menggabungkan dua daftar tertaut yang diurutkan dengan Python?(1) Buat penunjuk kepala baru ke daftar tertaut kosong. (2) Periksa nilai pertama dari kedua linked list. (3) Simpul mana pun dari L1 atau L2 yang lebih kecil, tambahkan ke daftar baru dan pindahkan penunjuk ke simpul berikutnya. (4) Lanjutkan proses ini hingga Anda mencapai akhir linked list
Bagaimana cara menggabungkan dua daftar yang diurutkan?Temukan Panjang Daftar Tertaut (Iteratif dan Rekursif) Deteksi loop dalam daftar tertaut Temukan panjang loop/siklus dalam Daftar Tertaut yang diberikan Tulis fungsi untuk mendapatkan titik potong dari dua Daftar Berantai Persimpangan dari dua Daftar Tertaut Terurut Bagaimana cara menggabungkan dua daftar secara berurutan dengan Python?Satu cara sederhana dan populer untuk menggabungkan(menggabungkan) dua daftar dengan Python adalah menggunakan metode append() built-in dari python . Metode append() di python menambahkan satu item ke daftar yang ada. Itu tidak mengembalikan daftar item baru. Sebaliknya, itu memodifikasi daftar asli dengan menambahkan item ke akhir daftar.
Apa kerumitan waktu untuk menggabungkan dua daftar yang diurutkan?Kompleksitas waktu. O(oN) di mana k adalah jumlah daftar tertaut. Kami dapat menggabungkan dua daftar terurut yang diurutkan dalam waktu O(n) di mana n adalah jumlah total node dalam dua daftar. Ringkas proses penggabungan dan kita bisa mendapatkannya. O(∑i=1k−1(i∗(kN)+kN))=O(kN). |