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