Giả sử chúng ta có một danh sách các số, chúng ta phải tìm tích lớn nhất của hai phần tử phân biệt.
Vì vậy, nếu đầu vào là [5, 3, 7, 4], thì đầu ra sẽ là 35
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- curr_max:=-inf
- đối với tôi trong phạm vi từ 0 đến kích thước là nums - 1, thực hiện
- đối với j trong phạm vi i + 1 đến kích thước của nums - 1, thực hiện
- nếu nums [i] * nums [j]> curr_max, thì
- curr_max:=nums [i] * nums [j]
- nếu nums [i] * nums [j]> curr_max, thì
- đối với j trong phạm vi i + 1 đến kích thước của nums - 1, thực hiện
- trả về curr_max
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): curr_max = float('-inf') for i in range(len(nums)): for j in range(i+1, len(nums)): if nums[i] * nums[j] > curr_max: curr_max = nums[i] * nums[j] return curr_max ob = Solution() print(ob.solve([5, 3, 7, 4]))
Đầu vào
[5, 3, 7, 4]
Đầu ra
35