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