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