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

โปรแกรมหาต้นทุนขั้นต่ำในการจัดเรียงตัวเลขจากน้อยไปมากหรือมากไปหาน้อยใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่า nums เราต้องหาต้นทุนขั้นต่ำเพื่อจัดเรียงรายการในลำดับใดๆ (จากน้อยไปมากหรือมากไปหาน้อย) ค่าใช้จ่ายคือผลรวมของความแตกต่างระหว่างมูลค่าเก่ากับค่าใหม่ขององค์ประกอบใดๆ

ดังนั้นหากอินพุตเป็น [2, 5, 4] ผลลัพธ์จะเป็น 2

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

  • temp:=คัดลอกหมายเลขอาร์เรย์
  • เรียงลำดับอุณหภูมิรายการ
  • c1:=0, c2:=0
  • n:=ขนาดของ nums
  • สำหรับ i ในช่วง 0 ถึง n ให้ทำ
    • ถ้า nums[i] ไม่เหมือนกับ temp[i] แล้ว
      • c1 :=c1 + |nums[i]-temp[i]|
    • ถ้า nums[i] ไม่เหมือนกับ temp[n-1-i] แล้ว
      • c2 :=c2 + |nums[i]-temp[n-i-1]|
  • ผลตอบแทนขั้นต่ำของ c1 และ c2

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

ตัวอย่าง

class Solution:
   def solve(self, nums):
      temp=nums.copy()
      temp.sort()
      c1=0
      c2=0
      n=len(nums)
      for i in range(n):
         if nums[i]!=temp[i]:
            c1+=abs(nums[i]-temp[i])
         if nums[i]!=temp[n-1-i]:
            c2+=abs(nums[i]-temp[n-i-1])
      return min(c1,c2)
ob = Solution()
print(ob.solve([2, 5, 4]))

อินพุต

[2, 5, 4]

ผลลัพธ์

2