मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है जहां प्रत्येक संख्या एक उम्मीदवार को वोट का प्रतिनिधित्व करती है। हमें गैर-घटते क्रम में उन उम्मीदवारों की आईडी ढूंढनी होगी जिनके पास फ्लोर (एन / 3) से अधिक वोट हैं।
इसलिए, यदि इनपुट अंकों की तरह है =[3, 2, 6, 6, 6, 6, 7, 7, 7, 7], तो आउटपुट [6, 7] होगा, क्योंकि 6 और 7 में 40 हैं वोटों का%।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- उत्तर:=एक नया खाली सेट
- सूची संख्या क्रमित करें
- मैं :=0
- n :=अंकों का आकार
- जबकि मैं <अंकों का आकार, करते हैं
- यदि अंकों की घटनाएँ [i] अंकों में> (n / 3), तो
- अंकों[i] को उत्तर में डालें
- i :=i + (n / 3)
- यदि अंकों की घटनाएँ [i] अंकों में> (n / 3), तो
- उत्तरों को क्रमबद्ध क्रम में लौटाएं
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): ans = set([]) nums.sort() i = 0 n = len(nums) while i < len(nums): if nums.count(nums[i]) > n // 3: ans.add(nums[i]) i += n // 3 return sorted(list(ans)) ob = Solution() nums = [3, 2, 6, 6, 6, 6, 7, 7, 7, 7, 7] print(ob.solve(nums))
इनपुट
[3, 2, 6, 6, 6, 6, 7, 7, 7, 7, 7]
आउटपुट
[6, 7]