美文网首页
LeetCode之Smallest Range I(Kotlin

LeetCode之Smallest Range I(Kotlin

作者: 糕冷羊 | 来源:发表于2019-03-25 15:12 被阅读0次

    问题:
    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
    

    方法:
    先取出数组的最大值,然后取出数组的最小值,如果最大值和最小值的差比K的2倍还要大则最小差为max-min-2*K,否则为0,因为最小差即为0。

    具体实现:

    class SmallestRangeI {
        fun smallestRangeI(A: IntArray, K: Int): Int {
            val max = A.max()
            val min = A.min()
            if (max == null || min == null) {
                return 0
            }
            val result = if ((max - min - K * 2) >= 0) (max - min - K * 2) else 0
            return result
        }
    }
    
    fun main(args: Array<String>) {
        val A = intArrayOf(0, 10)
        val K = 2
        val smallestRangeI = SmallestRangeI()
        println(smallestRangeI.smallestRangeI(A, K))
    }
    

    有问题随时沟通

    具体代码实现可以参考Github

    相关文章

      网友评论

          本文标题:LeetCode之Smallest Range I(Kotlin

          本文链接:https://www.haomeiwen.com/subject/cuqbmqtx.html