মান লো যাক আমাদের একটি সংখ্যার তালিকা আছে, আমাদের যাচাই করতে হবে সর্বোচ্চ সংখ্যা দ্বিতীয় সর্বোচ্চ সংখ্যার দ্বিগুণ (দুই গুণ) থেকে বড় কিনা। উদাহরণস্বরূপ, যদি তালিকা হয় [3, 9, 6], তবে এটি false রিটার্ন করবে, কারণ 9, 12-র (6 এর দুই গুণ) চেয়ে বড় নয়। যখন তালিকা হবে [6, 3, 15], তবে এটি true রিটার্ন করবে, কারণ 15, 12-র (6 এর দুই গুণ) চেয়ে বড়।
এটি সমাধান করতে আমরা নিচের ধাপগুলো অনুসরণ করব:
- যদি nums-এর আকার < 2 হয়, তবে
- false রিটার্ন করুন
- p_max := nums[0] এবং nums[1]-এর ন্যূনতম
- c_max := nums[0] এবং nums[1]-এর সর্বোচ্চ
- i के लिए 2 থেকে nums-এর আকার तक की रेंज में, करें
- यदि nums[i] > p_max, तो
- यदि nums[i] > c_max, तो
- p_max := c_max
- c_max := nums[i]
- अन्यथा,
- p_max := nums[i]
- यदि nums[i] > c_max, तो
- यदि nums[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