Leetcode 150 | Gün 4: Çoğunluk Elemanı

Leetcode 169, bir dizideki çoğunluk elemanını bulmanızı ister. Çoğunluk elemanı, n / 2'den fazla kez görünür. Her zaman var olduğunu varsayıyoruz.

Bunu iki şekilde çözebilirsiniz.

Yaklaşım 1: Map Yöntemi

Bu yöntem, her sayının kaç kez göründüğünü saymak için bir Map kullanır.

Karmaşıklık:

Yaklaşım 2: Boyer-Moore Oylama Algoritması

Bu, sabit bellek kullanarak problemi çözmenin optimize edilmiş bir yoludur.

Sayıları rakip takımlar gibi düşünün. Bir sayı farklı bir sayıyla karşılaştığında, birbirlerini nötrlerler. Çoğunluk elemanı vaktin yarısından fazlasında göründüğü için, her zaman ayakta kalan son eleman olacaktır.

Nasıl çalışır:

Karmaşıklık:

Neden önemli:

Her iki yöntemin de zaman karmaşıklığı O(n)'dir. Ancak, ikinci yaklaşım çok daha az bellek kullanır. Bir Map'e ihtiyaç duymaz. Bu da onu büyük veri kümeleri için daha iyi kılar.

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