Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมหาผลคูณสูงสุดของสององค์ประกอบที่ต่างกันในอาร์เรย์ใน Python

การหาผลคูณสูงสุดของสององค์ประกอบที่ต่างกัน

กำหนดรายการ nums หาผลคูณสูงสุดของสององค์ประกอบที่ต่างกัน (distinct elements)

อัลกอริทึม

  1. เรียง nums
  2. ผลคูณมากสุดจะเป็นหนึ่งในสองกรณี:
    • สองตัวเล็กสุด (อาจเป็นลบ × ลบ = บวกใหญ่)
    • สองตัวใหญ่สุด (บวก × บวก)
  3. เปรียบเทียบทั้งสองค่า

ตัวอย่างโค้ด

def solve(nums):
    nums_sort = sorted(nums)
    max_left = nums_sort[0] * nums_sort[1]
    max_right = nums_sort[-1] * nums_sort[-2]
    ans = max(max_left, max_right)
    return ans

nums = [8, -3, 1, -5]
print(solve(nums))

ผลลัพธ์

15

คำอธิบาย

เรียง: [-5, -3, 1, 8]

  • สองตัวเล็กสุด: -5 × -3 = 15
  • สองตัวใหญ่สุด: 1 × 8 = 8
  • สูงสุด = 15