정수 배열 A가 있다고 가정하고 이제 각 정수 A[i]에 대해 [-K ~ K] 범위의 x를 선택한 다음 A[i]에 x를 추가할 수 있습니다. 이제 이 과정 후에 배열 B가 생겼습니다. B의 최대값과 B의 최소값 사이에서 가능한 가장 작은 차이를 찾아야 합니다.
따라서 입력이 A =[0,10], K =2와 같으면 출력은 B =[2,8]
과 같이 6이 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- MAX :=(최대 A) - K
- MIN :=(최소 A) + K
- 차이:=MAX - MIN
- 차이 <0이 0이 아니면
- 0을 반환
- 그렇지 않으면 차액 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예시
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))
입력
[0,10],2
출력
6