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

Chương trình tìm hiệu nhỏ nhất giữa max và min sau khi cập nhật tối đa 3 phần tử bằng Python


Cho danh sách nums. Có thể thay đổi giá trị bất kỳ phần tử nào, tối đa 3 lần. Tìm hiệu nhỏ nhất có thể giữa max và min của mảng sau khi thay đổi.

Ví dụ: nums = [2, 3, 4, 5, 6, 7] → 2 (đổi thành [4, 3, 4, 5, 4, 4], max=5, min=3).

Quy trình giải quyết

  1. Nếu độ dài ≤ 4, trả về 0 (có thể làm tất cả bằng nhau).
  2. Sắp xếp mảng.
  3. Kết quả là min của nums[n-4+i] - nums[i] với i = 0..3 (xóa 3 phần tử cực đại hoặc cực tiểu).

Ví dụ mã nguồn

class Solution:
    def solve(self, nums):
        if len(nums) <= 4:
            return 0
        nums.sort()
        return min(nums[-4 + i] - nums[i] for i in range(4))

ob = Solution()
nums = [2, 3, 4, 5, 6, 7]
print(ob.solve(nums))  # Output: 2

Đầu vào

[2, 3, 4, 5, 6, 7]

Đầu ra

2