Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm chênh lệch tối thiểu của tối đa và phút sau khi cập nhật các phần tử nhiều nhất ba lần bằng Python

Giả sử chúng ta có một danh sách các số được gọi là nums, bây giờ hãy xem xét một phép toán mà chúng ta có thể cập nhật một phần tử thành bất kỳ giá trị nào. Chúng tôi có thể thực hiện nhiều nhất 3 trong số các hoạt động như vậy, chúng tôi phải tìm ra sự khác biệt nhỏ nhất giữa giá trị tối đa và giá trị nhỏ nhất tính bằng nums.

Vì vậy, nếu đầu vào là nums =[2, 3, 4, 5, 6, 7], thì đầu ra sẽ là 2, vì chúng ta có thể thay đổi danh sách thành [4, 3, 4, 5, 4, 4] và sau đó 5 - 3 =2.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu kích thước của nums <=4, thì
    • trả về 0
  • n:=kích thước của nums
  • sắp xếp các số trong danh sách
  • trả về mức chênh lệch tối thiểu giữa nums [n-4 + i] - nums [i] cho tất cả các i trong phạm vi 0 đến 3

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

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

Đầu ra

2