Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm chi phí tối thiểu sắp xếp mảng tăng hoặc giảm trong Python

Cho danh sách nums, tìm chi phí tối thiểu để sắp xếp theo thứ tự tăng dần hoặc giảm dần. Chi phí là tổng hiệu tuyệt đối giữa giá trị cũ và mới của từng phần tử.

Ví dụ

Đầu vào: [2, 5, 4].
Đầu ra: 2.

Thuật toán

  1. Sao chép và sắp xếp mảng thành temp.
  2. Tính c1 = tổng chi phí biến đổi thành temp (tăng dần).
  3. Tính c2 = tổng chi phí biến đổi thành temp đảo ngược (giảm dần).
  4. Trả về min(c1, c2).

Mã nguồn Python

class Solution:
    def solve(self, nums):
        temp = nums.copy()
        temp.sort()
        c1 = 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-1-i])
        return min(c1, c2)

ob = Solution()
print(ob.solve([2, 5, 4]))

Đầu vào / Đầu ra

Input: [2, 5, 4]
Output: 2