Flutter Dev Talk
🧠 #algoritms
Boyer–Moore Majority Vote Algorithm
Array ichida n / 2 dan ko‘p uchraydigan elementni O(n) Time va O(1) Space bilan topish algoritmi.
💡 Asosiy g‘oya: Har xil ikkita element bir-birini bekor qiladi.
int majorityElement(List<int> nums) {
int candidate = 0, count = 0;
for (final num in nums) {
if (count == 0) candidate = num;
count += num == candidate ? 1 : -1;
}
return candidate;
}
Masalan: [2, 2, 1, 1, 1, 2, 2] → 2
⚠️ Majority element mavjudligi kafolatlanmagan bo‘lsa, natijani ikkinchi loop bilan tekshirish kerak.
@flutterDevTalk
181 ·