描述
给定一个由N个整数组成的数组A,一次移动,我们可以选择此数组中的任何元素并将其替换为任何值。 数组的振幅是数组A中的最大值和最小值之间的差。 返回通过执行最多三次替换之后数组A的最小振幅。
在线评测地址:领扣题库官网
样例1 A = [-9, 8, -1] 可以将 -9 和 8 替换成-1,这样所有元素都等于 -1,所以振幅是0
样例 2 A = [14, 10, 5, 1, 0] 为了实现振幅是1,我们可以将 14,10,5 替换成 1 或者 0
样例 3 A = [11, 0, -6, -1, -3, 5] 可以将11,-6,5都换成-2
解题思路
将数组进行排序,然后将首尾的值进行相减,判断差值最小值,也可以通过O(n)遍历寻找出最大值、最小值等,但是代码过于冗余,推荐直接排序。
复杂度分析
时间复杂度:O(nlogn)
需要遍历一遍数组,并且排序算法时间复杂度为O(nlogn)。
空间复杂度:O(1)
源代码
class Solution: @param A: a list of integer @return: Return the smallest amplitude def MinimumAmplitude(self, A): if len(A) = 4: return 0 length = len(A) A = sorted(A) mmin = float('inf') for i in range(4): mmin = min(mmin, A[length - 3 + i - 1] - A[i]) return mmin
更多题解参考:九章官网solution
开发 小程序 怎么收费?现在很多企业/商家纷纷加入小程序阵营,目前使用比较多且...
作者:朱祝元 业务背景 网络舆情监测,主要是利用互联网信息采集技术,以及自然...
本文转载自微信公众号「UP技术控」,作者conan5566。转载本文请联系UP技术控公众...
《阿里云SRE技术期刊》2021年4月刊重磅发布啦,本期收录了阿里云技术服务专家多...
CDC 是什么 CDC 是变更数据捕获(Change Data Capture)技术的缩写,它可以将源...
作者 | 技师 来源 | 阿里技术公众号 温馨提示:本文较长,同学们可收藏后再看 :)...
C4D 学习笔记 1. 视图与物体控制基本操作 视图切换快捷键 : F1 ~ F5 切换视图 ...
一 引言 日志存储分析在应用系统中扮演着重要的角色,传统的ELK对于小型团队过于...
TOP云 (west.cn)8月23日消息,今天新顶级 域名 .site运营注册局Radix对外宣布...
-更多关于数智化转型、数据中台内容请加入 阿里云数据中台交流群—数智俱乐部 和...