ধরুন আমাদের কাছে একটি পূর্ণসংখ্যার অ্যারে আছে যাকে nums বলা হয়, এখন সেখানে সর্বদা একটি বৃহত্তম উপাদান থাকে। আমাদের পরীক্ষা করতে হবে যে অ্যারের বৃহত্তম উপাদানটি অ্যারের প্রতিটি সংখ্যার চেয়ে কমপক্ষে দ্বিগুণ। যদি তাই হয়, তাহলে আমাদের সবচেয়ে বড় উপাদানের সূচক খুঁজে বের করতে হবে, অন্যথায় -1 ফেরত দিতে হবে।
সুতরাং, যদি ইনপুটটি [3,6,1,0] এর মত হয়, তাহলে আউটপুট হবে 1, কারণ 6 হল সবচেয়ে বড় সংখ্যা, এবং অ্যারের প্রতিটি সংখ্যার জন্য x, 6 হল x এর দ্বিগুণেরও বেশি . যেহেতু 6-এর সূচক হল 1, তাহলে আউটপুটও 1।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- সর্বোচ্চ :=সংখ্যার সর্বোচ্চ
- আমি 0 থেকে সংখ্যার আকারের মধ্যে,
- করুন
- যদি সংখ্যা[i] সর্বোচ্চ সমান হয়, তাহলে
- maxindex :=i
- যদি সংখ্যা[i] সর্বোচ্চ এবং সর্বোচ্চ <2*(সংখ্যা[i]) সমান না হয়, তাহলে
- রিটার্ন -1
- যদি সংখ্যা[i] সর্বোচ্চ সমান হয়, তাহলে
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def dominantIndex(self, nums): maximum = max(nums) for i in range(len(nums)): if nums[i] == maximum: maxindex = i if nums[i] != maximum and maximum < 2*(nums[i]): return -1 return maxindex ob = Solution() print(ob.dominantIndex([3, 6, 1, 0]))
ইনপুট
[3, 6, 1, 0]
আউটপুট
1