Competitive Programming Academy · Pelajaran

Window Variabel dengan Two Pointer

Memperbesar dan mengecilkan hingga memenuhi kondisi

Pelajaran 2 dari 413 langkah

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 = 0

Perluas 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 += 1

Baca 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 + 1

Catat 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 += 1

Waspadai 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). ✅

Gratis untuk memulai

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

  1. Jumlah Window Berukuran Tetap
  2. Window Variabel dengan Two Pointer
  3. Substring Terpanjang Tanpa Pengulangan
  4. Menghitung Window yang Memenuhi Aturan
← Kembali ke Competitive Programming Academy