Pelajaran 4.1
Menghitung frekuensi
6 menit · 7 langkah
Langkah 1 dari 7 · Penjelasan
Map menyimpan pasangan key dan value, dan bisa mencari key dalam satu langkah. Untuk menghitung, key-nya adalah item dan value-nya adalah berapa kali item itu muncul.
Satu baris ini yang dipakai terus:
counts.set(x, (counts.get(x) || 0) + 1). Kalauxbelum ada,getmemberiundefined, dan|| 0mengubahnya jadi 0.Langkah 2 dari 7 · Tebak hasilnya
Function ini me-return hitungan terbanyak. Apa hasilnya untuk
"mississippi"?function solution(s) { const counts = new Map() let best = 0 for (const ch of s) { const c = (counts.get(ch) || 0) + 1 counts.set(ch, c) if (c > best) best = c } return best}48112
Langkah 3 dari 7 · Cari bug-nya
Untuk
"aab", kode ini me-returnNaN, padahal harusnya 2. Ketuk baris yang salah.function solution(s) { const counts = new Map() for (const ch of s) { counts.set(ch, counts.get(ch) + 1) } return counts.get("a")}Langkah 4 dari 7 · Telusuri kodenya
Isi
xdancdi langkah yang ditandai.cadalah hitungan baru untukx.function solution(nums) { const counts = new Map() let maxCount = 0 for (const x of nums) { const c = (counts.get(x) || 0) + 1 counts.set(x, c) maxCount = Math.max(maxCount, c) } return maxCount}solution([2, 7, 2, 2])
Langkah 5 dari 7 · Susun kodenya
Susun function yang me-return huruf pertama yang muncul tepat sekali, atau
""kalau tidak ada. Hitung dulu, lalu cari. Dua baris tidak termasuk.if (counts.get(ch) > 1) return ch}const counts = new Map()if (counts.get(ch) === 1) return ch}for (const ch of s) {for (const ch of s) {}return ""counts.set(ch, 1)function solution(s) {counts.set(ch, (counts.get(ch) || 0) + 1)Langkah 6 dari 7 · Pilih pendekatan
"Return nama yang paling banyak muncul di
votes." Constraint:1 ≤ votes.length ≤ 10⁵.
Cara mana yang paling pas?- Map dari nama ke hitungan, satu kali jalan
- Untuk setiap nama, hitung kemunculannya dengan loop dalam
- Sort dulu, lalu hitung nama yang sama yang berderet
- Array biasa dengan nama sebagai index
Langkah 7 dari 7 · Ringkasan
- Map mencari key dalam satu langkah. Untuk menghitung, key adalah item dan value adalah hitungannya.
counts.get(x)untuk key baru adalahundefined. Selalu tambahkan|| 0.- Banyak soal butuh dua kali jalan. Pertama hitung, lalu pakai hitungannya.