ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে; আমাদের পরীক্ষা করতে হবে যে বৃহত্তম সংখ্যাটি দ্বিতীয়-বৃহত্তর সংখ্যার চেয়ে দুই গুণের বেশি বড় কিনা। একটি উদাহরণ হিসাবে, যদি তালিকাটি [3, 9, 6] এর মত হয় তবে এটি মিথ্যা হবে, কারণ 9 12 (2 বার 6) এর চেয়ে বড় নয়। যখন তালিকাটি [6, 3, 15] হয়, তখন এটি সত্যে ফিরে আসবে, কারণ 15 12 এর থেকে বড় (2 বার 6)।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি সংখ্যার আকার <2, তারপর
- মিথ্যে ফেরত দিন
- p_max :=সর্বনিম্ন সংখ্যা[0] এবং সংখ্যা[1]
- c_max :=সংখ্যার সর্বাধিক[0] এবং সংখ্যা[1]
- আমি পরিসীমা 2 থেকে সংখ্যার আকারের জন্য, করুন
- যদি সংখ্যা[i]> p_max, তারপর
- যদি সংখ্যা[i]> c_max, তারপর
- p_max :=c_max
- c_max :=সংখ্যা[i]
- অন্যথায়,
- p_max :=সংখ্যা[i]
- যদি সংখ্যা[i]> c_max, তারপর
- যদি সংখ্যা[i]> p_max, তারপর
- রিটার্ন c_max> p_max * 2
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums): if len(nums) < 2: return False p_max = min(nums[0], nums[1]) c_max = max(nums[0], nums[1]) for i in range(2, len(nums)): if nums[i] > p_max: if nums[i] > c_max: p_max = c_max c_max = nums[i] else: p_max = nums[i] return c_max > p_max * 2 ob = Solution() nums = [3,6,15] print(ob.solve(nums))
ইনপুট
[3,6,15]
আউটপুট
None