Program JavaScript untuk mencari subarray dengan min terkecil
Aug 23, 2023 pm 11:33 PMKami akan menulis program untuk mencari subarray dengan min terkecil. Untuk melakukan ini, kami akan mengulangi tatasusunan dan menjejaki subarray semasa dan jumlahnya. Untuk setiap elemen, kami akan mengira purata subarray semasa dan membandingkannya dengan purata terkecil yang kami lihat setakat ini. Jika lebih rendah, kami mengemas kini purata minimum subarray serta indeks mula dan tamat. Pada penghujung lelaran, kami mengembalikan subarray dengan min terkecil.
Kaedah
Untuk mencari subarray dengan min terkecil, kita boleh mengikuti langkah-langkah ini -
Memulakan dua pembolehubah, mula dan akhir, untuk menjejaki indeks mula dan akhir subarray.
Gunakan untuk untuk mengulang tatasusunan, menjejaki jumlah semasa dan purata terkecil yang ditemui setakat ini.
-
Dalam setiap lelaran, bandingkan jumlah semasa dengan purata minimum dan jika minimum baharu ditemui, kemas kini pembolehubah Mula dan Tamat.
Jika jumlah semasa lebih besar daripada purata minimum, gerakkan indeks permulaan ke hadapan sehingga jumlahnya kurang daripada purata minimum.
Ulang langkah 2-4 sehingga anda sampai ke penghujung tatasusunan.
Subarray dengan purata terkecil ialah subarray bermula dari mula dan berakhir pada akhir.
Contoh
Memandangkan tatasusunan integer, cari subarray dengan min terkecil.
Berikut ialah contoh JavaScript berfungsi yang lengkap untuk menyelesaikan masalah ini -
function findsmallestAverageSubarray(arr, k) { let minAvg = Number.POSITIVE_INFINITY; let minAvgStart = 0; let windowSum = 0; for (let i = 0; i < arr.length - k + 1; i++) { if (i === 0) { for (let j = 0; j < k; j++) { windowSum += arr[j]; } } else { windowSum -= arr[i - 1]; windowSum += arr[i + k - 1]; } let windowAvg = windowSum / k; if (windowAvg < minAvg) { minAvg = windowAvg; minAvgStart = i; } } return arr.slice(minAvgStart, minAvgStart + k); } const arr = [1, 3, 6, -3, -4, 2, 5]; const k = 4; console.log(findsmallestAverageSubarray(arr, k));
Arahan
-
Fungsi
findSmallestAverageSubarray mengambil sebagai input tatasusunan integer arr dan integer k, dengan k ialah subray.
Fungsi mengembalikan subarray dengan min terkecil.
minAvgPembolehubah dimulakan dengan nilai terbesar yang mungkin bagi nombor titik terapung.
Pembolehubah minAvgStart digunakan untuk menyimpan indeks permulaan subarray dengan purata terkecil.
Pembolehubah windowSum digunakan untuk menyimpan jumlah elemen dalam subarray semasa.
Gelung luaruntuk (biar i = 0; i untuk panjang lelaran k dalam tatasusunan yang diberi arr.
Gelung dalamuntuk (biar j = 0; j digunakan untuk mengira jumlah unsur dalam subarray semasa.
Blok if (i === 0) digunakan untuk mengira hasil tambah unsur dalam subarray pertama.
Blok else digunakan untuk mengira jumlah elemen dalam subarray yang tinggal. Ia menolak elemen pertama subarray sebelumnya dan menambah elemen terakhir subarray semasa.
Pembolehubah windowAvg digunakan untuk menyimpan purata sub-tatasusunan semasa.
Blok if (windowAvg digunakan untuk mengemas kini purata minimum dan indeks permulaan sub-tatasusunan dengan purata minimum.
Akhir sekali, fungsi mengembalikan subarray dengan purata terkecil.
Atas ialah kandungan terperinci Program JavaScript untuk mencari subarray dengan min terkecil. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ganti aksara rentetan dalam javascript

Tutorial Persediaan API Carian Google Custom

8 plugin susun atur halaman jquery yang menakjubkan
