Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 가장 작은 범위 I

<시간/>

정수 배열 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