Smallest Range I in Python


Suppose we have an array A of integers, now for each integer A[i] we can choose any x with range [-K to K] then add x to A[i]. Now after this process, we have some array B. We have to find the smallest possible difference between the maximum value of B and the minimum value of B.

So, if the input is like A = [0,10], K = 2, then the output will be 6, as B = [2,8]

To solve this, we will follow these steps −

  • MAX := (maximum of A) - K
  • MIN := (minimum of A) + K
  • difference := MAX - MIN
  • if difference <0 is non-zero, then
    • return 0
  • otherwise return difference

Let us see the following implementation to get better understanding −

Example

 Live Demo

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))

Input

[0,10],2

Output

6

Updated on: 04-Jul-2020

329 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements