908. 最小差值 I

Posted 心脏dance

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了908. 最小差值 I相关的知识,希望对你有一定的参考价值。

题目链接:力扣

思路:

1. 当 maxValue - minValue > 2 * k 时,说明在2K的范围内最大值与最小值的差最小能变成 maxValue - minValue - 2 * k

2. 当 maxValue - minValue <= 2 * k 时,说明在2K的范围内最大值与最小值的差最小能变成0

有人可能会问,不考虑别的值吗?为什么只考虑最大值和最小值?

因为最大值与最小值的差能缩小的范围 > 别的值能缩小的范围。也就是说,最大值与最小值的差能缩小到的值,别的值一定可以缩小到(甚至只能更小)

上代码:

class Solution 
    fun smallestRangeI(nums: IntArray, k: Int): Int 
        val maxValue = nums.max() ?: 0
        val minValue = nums.min() ?: 0
        if (maxValue - minValue > 2 * k) 
            return maxValue - minValue - 2 * k
        
        return 0
    

以上是关于908. 最小差值 I的主要内容,如果未能解决你的问题,请参考以下文章

每日编程-448期Leetcode.908.最小差值I

LeetCode-908. 最小差值 I

LeetCode 908. 最小差值 I / 1305. 两棵二叉搜索树中的所有元素 / 591. 标签验证器

「 每日一练,快乐水题 」908. 最小差值 I

「 每日一练,快乐水题 」908. 最小差值 I

「 每日一练,快乐水题 」908. 最小差值 I