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
- Nếu độ dài ≤ 4, trả về 0 (có thể làm tất cả bằng nhau).
- Sắp xếp mảng.
- Kết quả là min của
nums[n-4+i] - nums[i]vớii = 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