Perihalan untuk Selang Sisip cukup jelas:
Anda diberikan tatasusunan selang selang tidak bertindih di mana selang[i] = [start_i, end_i] mewakili permulaan dan penghujung selang ke-i dan selang diisih dalam tertib menaik mengikut start_i. Anda juga diberikan selang newInterval = [mula, tamat] yang mewakili permulaan dan akhir selang lain.
Masukkan newInterval ke dalam selang supaya selang masih diisih dalam tertib menaik mengikut start_i dan selang masih tidak mempunyai sebarang selang bertindih (gabungkan selang bertindih jika perlu).
Selang balik selepas sisipan.
Perhatikan bahawa anda tidak perlu mengubah suai selang di tempatnya. Anda boleh membuat tatasusunan baharu dan mengembalikannya.
Contohnya:
Input: intervals = [[1, 3], [6, 9]], newInterval = [2, 5] Output: [[1, 5], [6, 9]]
Atau:
Input: intervals = [[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]], newInterval = [4, 8] Output: [[1, 2], [3, 10], [12, 16]] Explanation: Because the new interval [4, 8] overlaps with [3, 5], [6, 7], [8, 10].
Kita boleh mulakan dengan mencipta tatasusunan hasil untuk disimpan, baik, hasilnya:
let result = [];
Kemudian, melalui semua selang, kita perlu menyemak sama ada kita perlu meletakkan selang baharu sebelum atau selepas selang semasa, atau, jika ia bertindih dan oleh itu perlu digabungkan.
Seperti yang telah kita lihat dalam pengenalan bab, dua selang jangan bertindih jika permulaan satu lebih besar daripada hujung yang lain, atau, jika hujung satu kurang sama sekali daripada permulaan yang lain.
Apabila kedua-dua kes itu palsu, ia bertindih.
Pertama, kita boleh menyemak sama ada newInterval datang sebelum selang. Malah, jika kami mula-mula menyemak ini (kedudukan "paling awal" yang kami dapati untuk meletakkan newInterval), kami boleh kembali serta-merta dengan hasil kami yang baru dibina.
Ini juga pendekatan tamak.
for (let i = 0; i <p>Walau bagaimanapun, jika newInterval datang selepas selang semasa yang kami lihat, kami hanya boleh menolak selang semasa ke hasil kami:<br> </p> <pre class="brush:php;toolbar:false">for (let i = 0; i interval[1]) { result.push(interval); } }
Pilihan terakhir ialah apabila ia bertindih, dalam kes itu, kita perlu menggabungkan dua selang. Kita boleh mencipta newInterval sekali lagi dengan nilai minimum selang sebagai mula dan nilai maksimum selang itu sebagai akhir selang baharu:
for (let i = 0; i <p>Gelung kami pada masa ini kelihatan seperti ini:<br> </p> <pre class="brush:php;toolbar:false">for (let i = 0; i interval[1]) { result.push(interval); // overlapping, create newInterval } else { newInterval = [Math.min(newInterval[0], interval[0]), Math.max(newInterval[1], interval[1])]; } }
Kami juga perlu menolak Interval baharu terbaharu yang kami buat. Dan, pada akhirnya, kita hanya boleh mengembalikan hasilnya:
function insert(intervals: number[][], newInterval: number[]): number[][] { /* ... */ result.push(newInterval); return result; }
Akhir sekali, penyelesaiannya kelihatan seperti ini:
Input: intervals = [[1, 3], [6, 9]], newInterval = [2, 5] Output: [[1, 5], [6, 9]]
Kerumitan masa dan ruang
Kerumitan masa ialah O(n) kerana kami melakukan operasi berterusan untuk setiap item dalam tatasusunan selang. Kerumitan ruang akan menjadi O(n) serta kami menyimpan tatasusunan hasil dan saiznya akan meningkat apabila panjang selang bertambah.
Seterusnya, kita akan lihat pada Selang Gabungan. Sehingga itu, selamat mengekod.
Atas ialah kandungan terperinci Meditasi LeetCode: Selang Sisip. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Jenis data teras JavaScript adalah konsisten dalam penyemak imbas dan node.js, tetapi ditangani secara berbeza dari jenis tambahan. 1) Objek global adalah tetingkap dalam penyemak imbas dan global di Node.js. 2) Objek penampan unik Node.js, digunakan untuk memproses data binari. 3) Terdapat juga perbezaan prestasi dan pemprosesan masa, dan kod perlu diselaraskan mengikut persekitaran.

JavaScriptusestWotypesofcomments: Single-line (//) danMulti-line (//)

Perbezaan utama antara Python dan JavaScript ialah sistem jenis dan senario aplikasi. 1. Python menggunakan jenis dinamik, sesuai untuk pengkomputeran saintifik dan analisis data. 2. JavaScript mengamalkan jenis yang lemah dan digunakan secara meluas dalam pembangunan depan dan stack penuh. Kedua -duanya mempunyai kelebihan mereka sendiri dalam pengaturcaraan dan pengoptimuman prestasi yang tidak segerak, dan harus diputuskan mengikut keperluan projek ketika memilih.

Sama ada untuk memilih Python atau JavaScript bergantung kepada jenis projek: 1) Pilih Python untuk Sains Data dan Tugas Automasi; 2) Pilih JavaScript untuk pembangunan front-end dan penuh. Python disukai untuk perpustakaannya yang kuat dalam pemprosesan data dan automasi, sementara JavaScript sangat diperlukan untuk kelebihannya dalam interaksi web dan pembangunan stack penuh.

Python dan JavaScript masing -masing mempunyai kelebihan mereka sendiri, dan pilihan bergantung kepada keperluan projek dan keutamaan peribadi. 1. Python mudah dipelajari, dengan sintaks ringkas, sesuai untuk sains data dan pembangunan back-end, tetapi mempunyai kelajuan pelaksanaan yang perlahan. 2. JavaScript berada di mana-mana dalam pembangunan front-end dan mempunyai keupayaan pengaturcaraan tak segerak yang kuat. Node.js menjadikannya sesuai untuk pembangunan penuh, tetapi sintaks mungkin rumit dan rawan kesilapan.

Javascriptisnotbuiltoncorc; it'saninterpretedlanguagethatrunsonenginesoftenwritteninc .1) javascriptwasdesignedasalightweight, interpratedlanguageforwebbrowsers.2)

JavaScript boleh digunakan untuk pembangunan front-end dan back-end. Bahagian depan meningkatkan pengalaman pengguna melalui operasi DOM, dan back-end mengendalikan tugas pelayan melalui Node.js. 1. Contoh front-end: Tukar kandungan teks laman web. 2. Contoh backend: Buat pelayan Node.js.

Memilih Python atau JavaScript harus berdasarkan perkembangan kerjaya, keluk pembelajaran dan ekosistem: 1) Pembangunan Kerjaya: Python sesuai untuk sains data dan pembangunan back-end, sementara JavaScript sesuai untuk pembangunan depan dan penuh. 2) Kurva Pembelajaran: Sintaks Python adalah ringkas dan sesuai untuk pemula; Sintaks JavaScript adalah fleksibel. 3) Ekosistem: Python mempunyai perpustakaan pengkomputeran saintifik yang kaya, dan JavaScript mempunyai rangka kerja front-end yang kuat.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
