From 364ab60b0e505464284a2712dcd543dd95b0c162 Mon Sep 17 00:00:00 2001 From: kamyu Date: Sun, 23 Sep 2018 21:10:48 +0800 Subject: [PATCH] Create smallest-range-i.py --- Python/smallest-range-i.py | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Python/smallest-range-i.py diff --git a/Python/smallest-range-i.py b/Python/smallest-range-i.py new file mode 100644 index 000000000..c0ac4f415 --- /dev/null +++ b/Python/smallest-range-i.py @@ -0,0 +1,40 @@ +# Time: O(n) +# Space: O(1) + +# Given an array A of integers, for each integer A[i] +# we may choose any x with -K <= x <= K, and add x to A[i]. +# +# After this process, we have some array B. +# +# Return the smallest possible difference between +# the maximum value of B and the minimum value of B. +# +# Example 1: +# +# Input: A = [1], K = 0 +# Output: 0 +# Explanation: B = [1] +# Example 2: +# +# Input: A = [0,10], K = 2 +# Output: 6 +# Explanation: B = [2,8] +# Example 3: +# +# Input: A = [1,3,6], K = 3 +# Output: 0 +# Explanation: B = [3,3,3] or B = [4,4,4] +# +# Note: +# - 1 <= A.length <= 10000 +# - 0 <= A[i] <= 10000 +# - 0 <= K <= 10000 + +class Solution(object): + def smallestRangeI(self, A, K): + """ + :type A: List[int] + :type K: int + :rtype: int + """ + return max(0, max(A) - min(A) - 2*K)