मान लीजिए हमारे पास संख्याओं की एक सूची है; हमें यह जांचना है कि सबसे बड़ी संख्या दूसरी सबसे बड़ी संख्या से दो गुना से अधिक बड़ी है या नहीं। उदाहरण के तौर पर, यदि सूची [3, 9, 6] की तरह है, तो यह झूठी वापसी करेगी, क्योंकि 9, 12 से बड़ा नहीं है (2 गुणा 6)। जब सूची [6, 3, 15] होगी, तो यह सच हो जाएगी, क्योंकि 15, 12 से बड़ा है (2 गुना 6)।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- यदि अंकों का आकार <2 है, तो
- झूठी वापसी
- p_max :=न्यूनतम अंक[0] और अंक[1]
- c_max :=अधिकतम अंक[0] और अंक[1]
- i के लिए 2 से लेकर अंकों के आकार तक, करें
- यदि अंक[i]> p_max, तो
- यदि अंक[i]> c_max, तो
- p_max :=c_max
- c_max :=nums[i]
- अन्यथा,
- p_max :=nums[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