Giả sử chúng ta có một danh sách các số gọi là nums, chúng ta phải tìm tích lớn nhất của hai phần tử duy nhất.
Vì vậy, nếu đầu vào là nums = [8, -3, 1, -5], thì đầu ra sẽ là 15, vì (-3)*(-5) = 15 là lớn nhất ở đây.
Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau:
n := kích thước nums
nums_sort := sắp xếp danh sách nums
max_left := nums_sort[0] * nums_sort[1]
max_right := nums_sort[n-1] * nums_sort[n-2]
ans := max(max_left, max_right)
trả về ans
Ví dụ
Hãy xem triển khai sau để hiểu rõ hơn:
def solve(nums):
nums_sort = sorted(nums)
max_left = nums_sort[0] * nums_sort[1]
max_right = nums_sort[-1] * nums_sort[-2]
ans = max(max_left, max_right)
return ans
nums = [8, -3, 1, -5]
print(solve(nums))
Đầu vào
[8, -3, 1, -5]
Đầu ra
15