สมมติว่ามีรายการตัวเลข เราต้องหาผลคูณสูงสุดของสององค์ประกอบที่ต่างกัน
เช่น ถ้าอินพุตคือ [5, 3, 7, 4] ผลลัพธ์จะเป็น 35
ขั้นตอนการแก้ปัญหา
- curr_max := -inf
- for i ในช่วง 0 ถึงขนาดของ nums - 1
- for j ในช่วง i+1 ถึงขนาดของ nums - 1
- ถ้า nums[i] * nums[j] > curr_max curr_max := nums[i] * nums[j]
- for j ในช่วง i+1 ถึงขนาดของ nums - 1
- คืนค่า curr_max
ตัวอย่างโค้ด
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]))
อินพุต
[5, 3, 7, 4]
เอาต์พุต
35