1509。三步中最大和最小值之间的最小差异
中
给你一个整数数组 nums。
一举可以选择nums的一个元素,并将其更改为任意值.
最多执行三步后,返回nums的最大和最小值之间的最小差值.
示例1:
- 输入: nums = [5,3,2,4]
- 输出: 0
- 说明: 我们最多可以进行 3 步。
第一步,将 2 改为 3,nums 变为 [5,3,3,4]。
第二步,将4改为3。nums变为[5,3,3,3]。
第三步,将5改为3。nums变为[3,3,3,3]。
执行 3 次移动后,最小值和最大值之差为 3 - 3 = 0。
示例2:
- 输入: nums = [1,5,0,10,14]
- 输出: 1
- 说明: 我们最多可以进行 3 步。
第一步,将 5 改为 0,nums 变为 [1,0,0,10,14]。
在第二步中,将 10 更改为 0。nums 变为 [1,0,0,0,14]。
第三步,将14改为1。nums变为[1,0,0,0,1]。
执行 3 次移动后,最小值和最大值之差为 1 - 0 = 1。
可以证明,没有办法在3步之内使差值变为0。
示例3:
- 输入: nums = [3,100,20]
- 输出: 0
- 说明: 我们最多可以进行 3 步。
第一步,将 100 改为 7。 nums 变为 [3,7,20]。
在第二步中,将 20 更改为 7。nums 变为 [3,7,7]。
第三步,将3改为7。nums变为[7,7,7]。
执行 3 次移动后,最小值和最大值之差为 7 - 7 = 0。
限制:
- 1 5
- -1099
解决方案:
类解决方案{
/*** @param 整数[] $nums
* @return 整数*/
函数 minDifference($nums) {
$n = 计数($nums);
// 如果数组有 4 个或更少的元素,则差异为零,因为我们可以删除除一个元素之外的所有元素。
如果($n
<p><strong>联系链接</strong></p>
- 领英
- GitHub