𝗟𝗲𝗲𝘁𝗰𝗼𝗱𝗲 𝟭𝟱𝟬 | 𝗗𝗮𝘆 𝟰: 𝗠𝗮𝗷𝗼𝗿𝗶𝘁𝘆 𝗘𝗹𝗲𝗺𝗲𝗻𝘁

Leetcode 169 meminta Anda untuk menemukan elemen mayoritas dalam sebuah array. Elemen mayoritas muncul lebih dari n / 2 kali. Kita berasumsi elemen tersebut selalu ada.

Anda dapat menyelesaikannya dengan dua cara.

Pendekatan 1: Metode Map

Metode ini menggunakan Map untuk menghitung berapa kali setiap angka muncul.

Kompleksitas:

Pendekatan 2: Algoritma Voting Boyer-Moore

Ini adalah cara yang dioptimalkan untuk menyelesaikan masalah tersebut menggunakan memori konstan.

Bayangkan angka-angka tersebut sebagai tim yang saling berlawanan. Setiap kali sebuah angka bertemu dengan angka yang berbeda, mereka akan saling meniadakan. Karena elemen mayoritas muncul lebih dari separuh waktu, ia akan selalu menjadi yang terakhir bertahan.

Cara kerjanya:

Kompleksitas:

Mengapa ini penting:

Kedua metode memiliki kompleksitas waktu O(n). Namun, pendekatan kedua menggunakan memori yang jauh lebih sedikit. Metode ini tidak memerlukan Map, sehingga lebih baik untuk dataset yang besar.

Sumber: https://dev.to/afuji/leetcode-150-day-4-majority-element-naive-vs-optimized-eo6