การหาผลคูณสูงสุดของสามองค์ประกอบที่ต่างกัน
กำหนดรายการ nums หาผลคูณสูงสุดของสามองค์ประกอบที่ต่างกัน
อัลกอริทึม
- เรียง nums
- ผลคูณมากสุดจะเป็นหนึ่งในสองกรณี:
- สองตัวเล็กสุด (ลบ) × ตัวใหญ่สุด (บวก)
- สามตัวใหญ่สุด
- เปรียบเทียบทั้งสองค่า
ตัวอย่างโค้ด
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))
ผลลัพธ์
72
คำอธิบาย
เรียง: [-4, -3, 1, 2, 4, 6]
- -4 × -3 × 6 = 72
- 2 × 4 × 6 = 48
- สูงสุด = 72