मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे n मान वाले अंक कहते हैं, जहां प्रत्येक संख्या एक उम्मीदवार को वोट का प्रतिनिधित्व करती है। हमें उस उम्मीदवार की आईडी ढूंढनी है जिसके पास मंजिल (एन/2) से अधिक वोट हैं, और अगर बहुमत नहीं है तो वापसी -1।
इसलिए, यदि इनपुट संख्या =[6, 6, 2, 2, 3, 3, 3, 3, 3] की तरह है, तो आउटपुट 3 होगा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- l :=अंकों का आकार
- गिनती :=एक नक्शा जिसमें प्रत्येक व्यक्तिगत संख्या और उनकी आवृत्तियां शामिल हैं
- गणना में प्रत्येक संख्या i और घटना j के लिए, करें
- अगर j> (l / 2), तो
- वापसी मैं
- अगर j> (l / 2), तो
- वापसी -1
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): l = len(nums) from collections import Counter count = Counter(nums) for i, j in count.items(): if j > (l // 2): return i return -1 ob = Solution() nums = [6, 6, 2, 2, 3, 3, 3, 3, 3] print(ob.solve(nums))
इनपुट
[6, 6, 2, 2, 3, 3, 3, 3, 3]
आउटपुट
3