LeetCode刷题之最小差值 I

栏目: 编程工具 · 发布时间: 5年前

内容简介:本文在难度:简单 链接:https://leetcode-cn.com/problems/smallest-range-i来看题:

LeetCode刷题之大的国家

本文在 CSDN 同步更新

难度:简单 链接:https://leetcode-cn.com/problems/smallest-range-i

来看题:

LeetCode刷题之最小差值 I

LeetCode刷题之最小差值 I

LeetCode刷题之最小差值 I

这道题就是我在朋友圈里吐槽“ 审题半小时,做题两分钟 ”的那道。

LeetCode刷题之最小差值 I

LeetCode刷题之最小差值 I

可能是很久没做算法题了,反应有点迟钝,看了半天才看懂这道题的意思。

以示例3为例,我们把题干抄一遍: 给定了一个整数数组A = [1,3,6],对于A中的每一个元素A[i],我们可以选择任意x满足-3<=x<=3,并将x加到A[i]中,在此过程之中,我们得到一些数组B。返回B的最大值和B的最小值之间可能存在的最小差值。

这样一看,题目的意思很明显,A中的每个元素可以在-3和3之间任选一个元素想加,然后形成一个新的数组B。比如A中的元素都选择1想加,则新的B数组则为[2,4,6];如果A中的元素都选择2相加,则新的B数组则为[3,5,7],可以看出这两个新数组中最大值减去最小值,结果都是4。

但如果A数组的元素分别加上2,0,-3,我们可以看到B数组变成了[3,3,3],这样就得到了示例3的正确答案0。

因此我们只要知道数组A的最大值和最小值相差多少,然后与2 K比较,如果这个差值比2 K还要大,那我们无论怎么想加得到的B数组的最大值和最小值都不可能相等,此时最佳的B数组最大值和最小值的差值为max[A]-min[A]-2 K;但如果max[A]-min[A]要小于2 K的话,我们通过加加减减可以得到一个元素全部一样的B数组,此时max[B]-min[B]当然是等于0喽。

所以解答步骤为:

  1. 排序
  2. 比较并给出答案

我的解答:

public int smallestRangeI(int[] A, int K) {
        Arrays.sort(A);
        return A[A.length-1] - A[0] > 2*K ? A[A.length-1] - A[0] - 2*K : 0 ;
    }

接下来的几期会分析一下常见的 排序 算法,特别是快速排序和归并排序,当然,对于 java 源码里的Arrays.sort()方法也会进行分析,来看看sun公司最后使用的 排序算法 性能到底怎么样。

先给大家几张维基百科的图片感受下,熟悉这些排序的朋友可以在脑海里模拟一下排序。

快速排序: LeetCode刷题之最小差值 I

冒泡排序: LeetCode刷题之最小差值 I

选择排序: LeetCode刷题之最小差值 I

归并排序: LeetCode刷题之最小差值 I

插入排序: LeetCode刷题之最小差值 I

希尔排序: LeetCode刷题之最小差值 I

堆排序: LeetCode刷题之最小差值 I

下期更精彩,我们下期见,我们下期见~

欢迎关注我的微信公众号:一辈子的 码农 先生,接下来会有非常多的干货总结,这也是我对自己几年工作的一种总结和交代。谢谢大家!

LeetCode刷题之最小差值 I


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Foundations of PEAR

Foundations of PEAR

Good, Nathan A./ Kent, Allan / Springer-Verlag New York Inc / 2006-11 / $ 50.84

PEAR, the PHP Extension and Application Repository, is a bountiful resource for any PHP developer. Within its confines lie the tools that you need to do your job more quickly and efficiently. You need......一起来看看 《Foundations of PEAR》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具