Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Số lớn nhất gấp đôi số lớn thứ hai trong Python


Cho danh sách số, kiểm tra xem số lớn nhất có lớn hơn gấp đôi số lớn thứ hai hay không. Ví dụ: [3, 9, 6] -> false (9 không > 2*6=12). [6, 3, 15] -> true (15 > 2*6=12).

Các bước giải quyết:

  • Nếu độ dài < 2, trả về False.
  • p_max = min(nums[0], nums[1]), c_max = max(nums[0], nums[1]).
  • Duyệt i từ 2 đến cuối:
    • Nếu nums[i] > p_max:
      • Nếu nums[i] > c_max: p_max = c_max, c_max = nums[i].
      • Ngược lại: p_max = nums[i].
  • Trả về c_max > p_max * 2.

Ví dụ minh họa

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