0Pricing
Coding Interview Prep · Pelajaran

Menghapus Duplikat di Tempat

Menggunakan pasangan pointer lambat dan cepat

Menghapus Duplikat di Tempat adalah pelajaran Coding Interview Prep gratis di CoddyKit. Ini adalah pelajaran 3 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 Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Hapus Duplikat di Tempat

Diberikan larik terurut, pertahankan satu salinan dari setiap nilai tanpa menggunakan larik tambahan. Melakukannya di tempat menghemat memori dan merupakan pertanyaan wawancara klasik. 🧹

Mengapa Pengurutan Membantu

Saat larik terurut, setiap duplikat berada tepat di sebelah pasangannya. Jadi, Anda hanya perlu membandingkan tetangga, bukan seluruh larik.

Dua Peran, Dua Penunjuk

Gunakan penunjuk lambat yang menandai nilai terakhir yang dipertahankan dan penunjuk cepat yang memindai ke depan untuk mencari sesuatu yang baru.

slow = 0
fast = 1

Penunjuk Lambat Menulis

Anggap lambat sebagai posisi penulisan: semua yang berada di posisi itu atau sebelumnya sudah dibersihkan dan unik.

Penunjuk Cepat Membaca

Penunjuk cepat hanya membaca ke depan. Penunjuk ini melaju dan hanya memberi sinyal kepada penunjuk lambat saat menemukan nilai yang belum dipertahankan.

Lewati Pengulangan

Jika a[fast] sama dengan a[slow], itu adalah pengulangan, jadi jangan lakukan apa pun selain memajukan fast. Duplikat tersebut dilewati begitu saja.

for fast in range(1, n):
    if a[fast] == a[slow]:
        continue

Menemukan Sesuatu yang Baru

Saat a[fast] berbeda, majukan penunjuk lambat dan salin nilai baru ke sana. Cara ini menimpa duplikat lama dengan data unik yang baru.

    else:
        slow += 1
        a[slow] = a[fast]

Jawabannya adalah Panjangnya

Setelah pemindaian selesai, slow + 1 adalah jumlah nilai unik yang semuanya terkumpul di bagian depan larik.

return slow + 1

Abaikan Bagian Belakang

Apa pun yang berada setelah awalan unik adalah sisa data yang tidak diperlukan. Soal hanya memperhatikan slow + 1 elemen pertama, jadi biarkan bagian belakang tetap ada.

Perhatikan Larik Kosong

Larik kosong memiliki nol nilai unik. Tangani kondisi n == 0 sebelum memulai agar Anda tidak membaca melewati ujung larik.

if n == 0:
    return 0

Satu Lintasan, Tanpa Ruang Tambahan

Pola lambat-cepat ini berjalan dalam waktu O(n) dan menggunakan ruang tambahan O(1), tepat seperti yang dituntut oleh batas memori yang ketat.

Pemeriksaan Singkat

Anda menghapus duplikat di tempat pada larik terurut dengan penunjuk lambat dan cepat.

Rangkuman

Pada larik terurut, pasangan lambat-cepat menghapus duplikat dalam satu lintasan O(n) tanpa ruang tambahan, lalu mengembalikan slow + 1 sebagai jumlah nilai unik. 🎉

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menghapus Duplikat di Tempat” gratis?

Ya — teks lengkap “Menghapus Duplikat di Tempat” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Coding Interview Prep, upgrade ke CoddyKit PRO. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menghapus Duplikat di Tempat”?

Menggunakan pasangan pointer lambat dan cepat Kamu berlatih Coding Interview Prep 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 Coding Interview Prep?

Tidak diperlukan pengalaman sebelumnya. Coding Interview Prep 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 3 dari 4.

Berapa lama pelajaran “Menghapus Duplikat di Tempat” 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 Coding Interview Prep ini?

Ya. Setiap pelajaran Coding Interview Prep 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. Two Pointer pada Array Terurut
  2. Menemukan Pasangan dengan Jumlah Tertentu
  3. Menghapus Duplikat di Tempat
  4. Menggabungkan Dua Urutan Terurut
← Kembali ke Coding Interview Prep