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

Số và gấp ba lần của nó trong Python

Cho danh sách nums, kiểm tra có tồn tại hai số mà một số là gấp 3 lần số kia không.

Ví dụ: [2, 3, 10, 7, 9] → True (9 = 3×3).

Các bước giải quyết (hai con trỏ)

  • Sắp xếp danh sách
  • i = 0, j = 1
  • Khi j < len(n):
    • Nếu 3*n[i] == n[j] → True
    • Nếu 3*n[i] > n[j] → j += 1
    • Ngược lại → i += 1
  • Trả về False

Ví dụ mã Python

class Solution:
    def solve(self, n):
        i = 0
        n.sort()
        j = 1
        while j < len(n):
            if 3*n[i] == n[j]:
                return True
            if 3*n[i] > n[j]:
                j += 1
            else:
                i += 1
        return False

ob = Solution()
print(ob.solve([2, 3, 10, 7, 9]))

Đầu vào

[2, 3, 10, 7, 9]

Đầu ra

True