Jadual Kandungan
Kaedah
Contoh
Arahan
Rumah hujung hadapan web tutorial js Program JavaScript untuk mencari subarray dengan min terkecil

Program JavaScript untuk mencari subarray dengan min terkecil

Aug 23, 2023 pm 11:33 PM

JavaScript 程序查找平均值最小的子数组

Kami 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));
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ganti aksara rentetan dalam javascript Ganti aksara rentetan dalam javascript Mar 11, 2025 am 12:07 AM

Ganti aksara rentetan dalam javascript

Tutorial Persediaan API Carian Google Custom Tutorial Persediaan API Carian Google Custom Mar 04, 2025 am 01:06 AM

Tutorial Persediaan API Carian Google Custom

Contoh warna json fail Contoh warna json fail Mar 03, 2025 am 12:35 AM

Contoh warna json fail

10 JQuery Syntax Highlighters 10 JQuery Syntax Highlighters Mar 02, 2025 am 12:32 AM

10 JQuery Syntax Highlighters

8 plugin susun atur halaman jquery yang menakjubkan 8 plugin susun atur halaman jquery yang menakjubkan Mar 06, 2025 am 12:48 AM

8 plugin susun atur halaman jquery yang menakjubkan

Bina Aplikasi Web Ajax anda sendiri Bina Aplikasi Web Ajax anda sendiri Mar 09, 2025 am 12:11 AM

Bina Aplikasi Web Ajax anda sendiri

Apa itu ' ini ' Dalam JavaScript? Apa itu ' ini ' Dalam JavaScript? Mar 04, 2025 am 01:15 AM

Apa itu ' ini ' Dalam JavaScript?

10 JavaScript & JQuery MVC Tutorial 10 JavaScript & JQuery MVC Tutorial Mar 02, 2025 am 01:16 AM

10 JavaScript & JQuery MVC Tutorial

See all articles