Giả sử chúng ta có một danh sách các số được gọi là num, chúng ta phải tìm tích lớn nhất của ba phần tử duy nhất.
Vì vậy, nếu đầu vào giống như nums =[6, 1, 2, 4, -3, -4], thì đầu ra sẽ là 72, vì chúng ta có thể nhân (- 3) * (-4) * 6 =72.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
sắp xếp các số trong danh sách
-
n:=kích thước của nums
-
maxScore:=-inf
-
maxScore:=tối đa của maxScore và (nums [0] * nums [1] * nums [n - 1])
-
maxScore:=tối đa của maxScore và (nums [n - 3] * nums [n - 2] * nums [n - 1])
-
trả về điểm tối đa
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn
def solve(nums): nums.sort() n = len(nums) maxScore = -10000 maxScore = max(maxScore, nums[0] * nums[1] * nums[n - 1]) maxScore = max(maxScore, nums[n - 3] * nums[n - 2] * nums[n - 1]) return maxScore nums = [6, 1, 2, 4, -3, -4] print(solve(nums))
Đầu vào
[6, 1, 2, 4, -3, -4]
Đầu ra
72