Giả sử chúng ta có một danh sách các số; chúng ta phải kiểm tra xem số lớn nhất có lớn hơn số lớn thứ hai hơn hai lần hay không. Ví dụ:nếu danh sách giống như [3, 9, 6], thì nó sẽ trả về false, vì 9 không lớn hơn 12 (2 lần 6). Khi danh sách là [6, 3, 15], nó sẽ trả về true, vì 15 lớn hơn 12 (2 lần 6).
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- nếu kích thước của nums <2, thì
- trả về Sai
- p_max:=tối thiểu là nums [0] và nums [1]
- c_max:=tối đa là nums [0] và nums [1]
- đối với tôi trong phạm vi 2 đến kích thước của nums, hãy thực hiện
- nếu nums [i]> p_max, thì
- nếu nums [i]> c_max, thì
- p_max:=c_max
- c_max:=nums [i]
- nếu không,
- p_max:=nums [i]
- nếu nums [i]> c_max, thì
- nếu nums [i]> p_max, thì
- trả về c_max> p_max * 2
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
[3,6,15]
Đầu ra
None