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

การย้ายขั้นต่ำไปยัง Equal Array Elements II ใน Python


สมมติว่าเรามีอาร์เรย์จำนวนเต็มที่ไม่ว่างเปล่า เราต้องหาจำนวนการเคลื่อนไหวขั้นต่ำที่จำเป็นในการทำให้องค์ประกอบอาร์เรย์ทั้งหมดเท่ากัน โดยที่การย้ายจะเพิ่มหรือลดองค์ประกอบที่เลือก โดย 1 ดังนั้นเมื่ออาร์เรย์เป็นเหมือน [1, 2, 3] ผลลัพธ์จะเป็น 2 เนื่องจาก 1 จะเพิ่มขึ้นเป็น 2 และ 3 จะลดลงเป็น 2

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

  • เรียงลำดับจำนวนอาร์เรย์
  • ตั้งค่าตัวนับเป็น 0
  • สำหรับ i ใน nums ทำ
    • ตัวนับ :=ตัวนับ + ค่าสัมบูรณ์ของ (i – nums[length of nums / 2])
  • เคาน์เตอร์คืนสินค้า

ตัวอย่าง(Python)

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

class Solution:
   def minMoves2(self, nums):
      nums.sort()
      counter = 0
      for i in nums:
         counter += abs(i-nums[len(nums)//2])
      return counter
ob1 = Solution()
print(ob1.minMoves2([2,5,3,4]))

อินพุต

[2,5,3,4]

ผลลัพธ์

4