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

Array Partition I ใน Python


สมมติว่าเรามีอาร์เรย์จำนวน 2n จำนวนเต็ม เราต้องจัดกลุ่มจำนวนเต็มเหล่านี้เป็นจำนวนเต็ม n คู่ เช่น (a1, b1), (a2, b2), ..., (an, bn) ซึ่งมีผลรวมของ min (ai, bi) สำหรับ i ทั้งหมดในช่วง 1 ถึง n ให้มากที่สุด ดังนั้นหากอินพุตคือ [1, 4, 3, 2] เอาต์พุตจะเป็น 4 ดังนั้น n คือ 2 และผลรวมสูงสุดของคู่คือ 4 นี่คือ min(1, 2) + min(3, 4) =4

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • ให้ n คือขนาดของอาร์เรย์
  • จัดเรียงอาร์เรย์
  • คำตอบ :=0
  • สำหรับฉันในช่วง 0 ถึง n ให้กระโดด 2
    • answer :=answer + array[i]
  • ส่งคืนคำตอบ

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

class Solution(object):
   def arrayPairSum(self, a):
      """
      :type nums: List[int]
      :rtype: int
      """
      n = len(a)
      a.sort()
      ans = 0
      for i in range(0,n,2):
         ans += a[i]
      return ans
ob1 = Solution()
print(ob1.arrayPairSum([1,4,3,2]))

อินพุต

[1,4,3,2]

ผลลัพธ์

4