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

Leetcode 169 meminta anda mencari elemen majoriti dalam satu tatasusunan. Elemen majoriti muncul lebih daripada n / 2 kali. Kita mengandaikan ia sentiasa wujud.

Anda boleh menyelesaikannya dengan dua cara.

Pendekatan 1: Kaedah Map

Kaedah ini menggunakan Map untuk mengira berapa kali setiap nombor muncul.

Kompleksiti:

Pendekatan 2: Algoritma Pengundian Boyer-Moore

Ini adalah cara yang dioptimumkan untuk menyelesaikan masalah ini menggunakan memori malar.

Bayangkan nombor-nombor tersebut sebagai pasukan yang bertentangan. Setiap kali satu nombor bertemu dengan nombor yang berbeza, mereka akan saling membatalkan satu sama lain. Memandangkan elemen majoriti muncul lebih daripada separuh masa, ia akan sentiasa menjadi yang terakhir bertahan.

Cara ia berfungsi:

Kompleksiti:

Mengapa ia penting:

Kedua-dua kaedah mempunyai kompleksiti masa O(n). Walau bagaimanapun, pendekatan kedua menggunakan memori yang jauh lebih sedikit. Ia tidak memerlukan Map. Ini menjadikannya lebih baik untuk set data yang besar.

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