ধরুন আমাদের কাছে n মান সম্বলিত nums নামক সংখ্যার একটি তালিকা আছে, যেখানে প্রতিটি সংখ্যা একজন প্রার্থীকে ভোট প্রদান করে। আমাদেরকে সেই প্রার্থীর আইডি খুঁজে বের করতে হবে যার ভোট সংখ্যা ফ্লোর(n/2) থেকে বেশি, এবং যদি সংখ্যাগরিষ্ঠ ভোট না থাকে তাহলে -1 ফেরত দিতে হবে।
সুতরাং, ইনপুট যদি সংখ্যার মত হয় =[6, 6, 2, 2, 3, 3, 3, 3, 3], তাহলে আউটপুট হবে 3।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- l :=সংখ্যার আকার
- গণনা :=প্রতিটি পৃথক সংখ্যা এবং তাদের ঘটনা সম্বলিত একটি মানচিত্র
- প্রতিটি সংখ্যার জন্য i এবং সংঘটন j গণনায়, কর
- যদি j> (l / 2), তারপর
- রিটার্ন i
- যদি 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