Langsung ke konten
Brute force dulu

Pelajaran 3.1

Coba semua pasangan

6 menit · 7 langkah

  1. Langkah 1 dari 7 · Penjelasan

    Brute force artinya: daftar semua kandidat, lalu cek satu per satu. Lambat itu urusan nanti. Yang penting dulu jawabannya benar.

    Untuk pasangan, pakai dua loop. i jalan dari awal, j mulai dari i + 1. Dengan begitu setiap pasangan dicek tepat sekali, dan item tidak pernah dipasangkan dengan dirinya sendiri.

  2. Langkah 2 dari 7 · Tebak hasilnya

    Berapa kali checks++ jalan untuk n = 4?

    function solution(n) {  let checks = 0  for (let i = 0; i < n; i++) {    for (let j = i + 1; j < n; j++) {      checks++    }  }  return checks}
    1. 6
    2. 16
    3. 12
    4. 4
  3. Langkah 3 dari 7 · Tebak hasilnya

    Di kode ini j mulai dari 0, bukan i + 1. Apa yang di-return untuk [1, 4, 2, 3] dan target 5?

    function solution(nums, target) {  let count = 0  for (let i = 0; i < nums.length; i++) {    for (let j = 0; j < nums.length; j++) {      if (nums[i] + nums[j] === target) count++    }  }  return count}
    1. 4
    2. 2
    3. 6
  4. Langkah 4 dari 7 · Cari bug-nya

    Soal "Return true kalau ada dua item berbeda yang jumlahnya target." Untuk [3, 5] dan target 6, kode ini me-return true. Ketuk baris yang salah.

    function solution(nums, target) {  for (let i = 0; i < nums.length; i++) {    for (let j = i; j < nums.length; j++) {      if (nums[i] + nums[j] === target) return true    }  }  return false}
  5. Langkah 5 dari 7 · Susun kodenya

    Susun function yang me-return jumlah terbesar dari dua item berbeda. Dua baris tidak termasuk.

    for (let j = 0; j < nums.length; j++) {}function solution(nums) {best = Math.max(best, nums[i] + nums[j])}for (let j = i + 1; j < nums.length; j++) {return bestlet best = -Infinitylet best = 0for (let i = 0; i < nums.length; i++) {}
  6. Langkah 6 dari 7 · Tulis kodenya

    solution(nums)

    Return berapa pasangan (i, j) dengan i < j dan nums[i] > nums[j].
    Constraint: 0 ≤ nums.length ≤ 100.

    function solution(nums) {  // [3, 1, 2] -> 2: (3, 1), (3, 2) }
  7. Langkah 7 dari 7 · Ringkasan

    • Brute force dulu. Jawaban yang benar dan lambat lebih baik daripada yang cepat dan salah.
    • Untuk pasangan, j mulai dari i + 1. Setiap pasangan sekali, tanpa pasangan dengan diri sendiri.
    • j dari 0 menghitung setiap pasangan dua kali dan ikut memasangkan item dengan dirinya sendiri.

    Kartu pola

    Semua pasangan
    Kapan dipakai: Saat soal bertanya tentang dua item dan inputnya kecil. Ini juga jadi pembanding untuk solusi yang lebih cepat.
    for (let i = 0; i < n; i++) {  for (let j = i + 1; j < n; j++) {    // cek / check (nums[i], nums[j])  }}