Giả sử chúng ta có một mảng A gồm các số nguyên, bây giờ với mỗi số nguyên A [i], chúng ta có thể chọn x bất kỳ có phạm vi [-K đến K] sau đó thêm x vào A [i]. Bây giờ sau quá trình này, chúng ta có một số mảng B. Chúng ta phải tìm sự khác biệt nhỏ nhất có thể giữa giá trị lớn nhất của B và giá trị nhỏ nhất của B.
Vì vậy, nếu đầu vào là A =[0,10], K =2, thì đầu ra sẽ là 6, là B =[2,8]
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- MAX:=(tối đa là A) - K
- MIN:=(tối thiểu là A) + K
- chênh lệch:=MAX - MIN
- nếu chênh lệch <0 khác 0, thì
- trả về 0
- nếu không thì trả lại chênh lệch
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 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