Window Variabel dengan Two Pointer
Memperbesar dan mengecilkan hingga memenuhi kondisi
Window Variabel dengan Two Pointer adalah pelajaran Competitive Programming Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Competitive Programming Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Competitive Programming Academy mencakup 4 pelajaran total.
Saat Ukuran Jendela Berubah
Beberapa masalah tidak menetapkan panjang jendela. Sebaliknya, jendela membesar dan mengecil agar suatu kondisi tetap terpenuhi, misalnya jumlah tetap di bawah batas tertentu.
Dua Penunjuk, Satu Jendela
Pertahankan dua indeks, kiri dan kanan, sebagai penanda tepi jendela. Penunjuk kanan memperluas jendela, sementara penunjuk kiri mengikutinya untuk mengecilkan jendela jika diperlukan.
left = 0
window = 0Perluas ke Kanan
Telusuri setiap elemen ke arah kanan dan sertakan elemen tersebut dalam jendela. Perbarui keadaan berjalan, misalnya dengan menambahkan nilai baru ke jumlah.
for right in range(n):
window += a[right]Kecilkan Saat Diperlukan
Selama jendela melanggar aturan, geser kiri ke arah kanan dan hapus elemen tersebut. Dengan begitu, kondisi dipulihkan tanpa perlu kembali ke belakang.
while window > limit:
window -= a[left]
left += 1Baca Jendela yang Valid
Setelah perulangan bagian dalam berakhir, jendela dari kiri hingga kanan menjadi valid. Panjangnya adalah kanan dikurangi kiri ditambah satu, sehingga siap digunakan.
length = right - left + 1Catat Hasil Terbaik
Perbarui jawaban dengan jendela valid ini, yang sering kali merupakan jendela terpanjang yang ditemukan. Lakukan ini pada setiap iterasi agar tidak ada yang terlewat.
best = max(best, right - left + 1)Mengapa Waktunya Linear
Setiap penunjuk hanya bergerak maju, tidak pernah mundur. Penunjuk kiri dan kanan secara keseluruhan maju paling banyak n langkah, sehingga seluruh penelusuran adalah O(n).
Persyaratan Monoton
Ini bekerja ketika memperluas jendela hanya membuat kondisi menjadi lebih sulit untuk dipenuhi. Perilaku monoton inilah yang memungkinkan penunjuk kiri tidak pernah kembali.
Terpanjang vs Terpendek
Untuk mencari jendela valid terpendek, kecilkan jendela selama aturan masih terpenuhi dan catat hasilnya sebelum kondisi tidak lagi terpenuhi. Mekanisme penunjuknya tetap sama.
while window >= target:
best = min(best, right - left + 1)
window -= a[left]
left += 1Waspadai Jendela Kosong
Jika pengecilan dapat mengosongkan jendela, cegah kondisi kiri melewati kanan. Pastikan juga bahwa jawaban benar-benar ditemukan sebelum mengembalikannya.
Kenali Polanya
Gunakan jendela variabel ketika masalah meminta rentang berurutan terpanjang atau terpendek yang memenuhi suatu kondisi pada elemennya.
Pemeriksaan Cepat
Anda menjalankan jendela variabel dengan dua penunjuk pada larik berukuran n.
Ringkasan
Perluas kanan untuk menyertakan elemen, kecilkan kiri saat aturan dilanggar, dan catat setiap jendela valid. Penunjuk yang hanya bergerak maju membuat kompleksitasnya O(n). ✅
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 30
- Pelajaran
- 120
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Window Variabel dengan Two Pointer” gratis?
Ya — teks lengkap “Window Variabel dengan Two Pointer” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Competitive Programming Academy, upgrade ke CoddyKit PRO. Kursus Competitive Programming Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Window Variabel dengan Two Pointer”?
Memperbesar dan mengecilkan hingga memenuhi kondisi Kamu berlatih Competitive Programming Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Competitive Programming Academy?
Tidak diperlukan pengalaman sebelumnya. Competitive Programming Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Window Variabel dengan Two Pointer” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Competitive Programming Academy ini?
Ya. Setiap pelajaran Competitive Programming Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Jumlah Window Berukuran Tetap
- Window Variabel dengan Two Pointer
- Substring Terpanjang Tanpa Pengulangan
- Menghitung Window yang Memenuhi Aturan