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

Khoảng nhỏ nhất I (Smallest Range I) trong Python


Giả sử ta có mảng A số nguyên, với mỗi A[i] ta chọn x trong [-K, K] cộng vào A[i]. Sau quá trình này, ta có mảng B. Ta tìm hiệu nhỏ nhất có thể giữa max(B) và min(B).

Ví dụ, A=[0,10], K=2, đầu ra 6, vì B=[2,8]

Giải quyết:

  • MAX := max(A) - K
  • MIN := min(A) + K
  • difference := MAX - MIN
  • if difference < 0, return 0
  • else return difference

Xem triển khai:

Ví dụ

class Solution:
    def smallestRangeI(self, A, K):
        MAX = max(A) - K
        MIN = min(A) + K
        difference = MAX - MIN
        if difference < 0:
            return 0
        else:
            return difference
ob = Solution()
print(ob.smallestRangeI([0,10], 2))

Đầu vào

[0,10],2

Đầu ra

6