【leetcode】908. Smallest Range I

题目如下:

解题思路:简单的不能再简单的题目了,对于任意一个A[i]来说,其可能的最小的最大值是A[i]-K,最大的最小值是A[i]+K。遍历数组,求出所有元素中最大的最小值和最小的最大值,两者之差(小于零则取零)就是答案。

代码如下:

class Solution(object):
    def smallestRangeI(self, A, K):
        """
        :type A: List[int]
        :type K: int
        :rtype: int
        """
        minv,maxv = A[0] + K, A[0] - K
        for i in A:
            minv = min(minv,i+K)
            maxv = max(maxv,i-K)
        return max(0,maxv-minv)

 

posted @ 2018-09-25 13:02  seyjs  阅读(291)  评论(0编辑  收藏  举报