0Pricing
Coding Interview Prep · Pelajaran

Menghasilkan Semua Subset

Memilih atau melewati setiap elemen

Menghasilkan Semua Subset adalah pelajaran Coding Interview Prep 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 Coding Interview Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Coding Interview Prep mencakup 4 pelajaran total.

Mengapa Membuat Himpunan Bagian

Banyak soal kontes meminta Anda mencoba setiap himpunan bagian dari suatu himpunan kecil. Dengan rekursi, Anda dapat mencantumkan semuanya secara rapi dan andal. 🧩

Pilih atau Lewati Setiap Elemen

Gagasan utamanya: untuk setiap elemen, buat satu pilihan biner, yaitu memasukkannya atau tidak. Setiap rangkaian pilihan yang lengkap menghasilkan satu himpunan bagian.

Berapa Banyak Himpunan Bagian yang Ada

Himpunan dengan n elemen memiliki tepat 2 pangkat n himpunan bagian karena setiap elemen menggandakan jumlahnya. Jadi, pertahankan n tetap kecil, sekitar 20 atau kurang.

Rencana Rekursif

Gerakkan sebuah indeks menyusuri larik. Pada setiap indeks, buat dua cabang: satu dengan mengambil elemen tersebut dan satu lagi dengan melewatinya.

Kasus Dasar

Saat indeks melewati elemen terakhir, jalur saat ini menjadi satu himpunan bagian yang lengkap. Itulah kasus dasar untuk mencatatnya.

Rekursi Himpunan Bagian dalam Kode

Penelusuran rekursif ini mencatat sebuah himpunan bagian di akhir, lalu menjelajahi pilihan melewati dan mengambil elemen dari setiap indeks.

def gen(i, cur):
    if i == len(a):
        out.append(cur[:])
        return
    gen(i + 1, cur)
    gen(i + 1, cur + [a[i]])

Lakukan Runut Balik dengan Membatalkan Pilihan

Saat Anda melakukan append pada sebuah elemen, hapus elemen tersebut setelah rekursi agar cabang berikutnya dimulai dalam keadaan bersih. Langkah pembatalan ini merupakan inti dari runut balik.

cur.append(a[i])
gen(i + 1, cur)
cur.pop()

Alternatif Masker Bit

Anda juga dapat memetakan setiap bilangan bulat dari 0 hingga 2 pangkat n dikurangi 1 ke sebuah himpunan bagian; setiap bit menandai elemen yang disertakan.

for mask in range(1 << n):
    sub = [a[i] for i in range(n) if mask >> i & 1]

Salin Sebelum Menyimpan

Selalu simpan salinan daftar saat ini, bukan daftar itu sendiri. Jika tidak, perubahan berikutnya akan menimpa setiap himpunan bagian yang telah Anda simpan. ⚠️

Membuat Kombinasi

Untuk mendapatkan himpunan bagian dengan ukuran tetap k, hentikan cabang saat jumlah elemen yang dipilih mencapai k. Dengan begitu, himpunan bagian berubah menjadi combinations.

Penggunaan Himpunan Bagian

Pencacahan himpunan bagian menyelesaikan masalah ransel kecil, pemilihan tim, dan pemeriksaan kelayakan saat Anda harus menguji setiap pilihan yang mungkin.

Pemeriksaan Singkat

Berapa banyak himpunan bagian yang dimiliki himpunan dengan n elemen?

Rangkuman: Bercabang pada Setiap Elemen

Anda telah mempelajari cara mencantumkan semua himpunan bagian dengan memilih atau melewati setiap elemen, lalu membatalkan pilihan setelah setiap cabang. Pertahankan n tetap kecil karena jumlahnya adalah 2 pangkat n. 🎯

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menghasilkan Semua Subset” gratis?

Ya — teks lengkap “Menghasilkan Semua Subset” 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 “Menghasilkan Semua Subset”?

Memilih atau melewati setiap elemen 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 2 dari 4.

Berapa lama pelajaran “Menghasilkan Semua Subset” 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. Berpikir Rekursif: Basis & Rekursi
  2. Menghasilkan Semua Subset
  3. Permutasi dan Gagasan N-Queens
  4. Memangkas untuk Bertahan dari Batas Waktu
← Kembali ke Coding Interview Prep