1. 题目

给定一个由 N 个整数组成的数组 A,一次移动,我们可以选择此数组中的任何元素并将其替换为任何值。
数组的振幅是数组A中的最大值和最小值之间的差。
返回通过执行最多三次替换之后数组A的最小振幅

示例 1
输入:
A = [-9, 8, -1]
输出: 0
解释:可以将 -9 和 8 替换成-1,这样所有元素都等于 -1,所以振幅是0示例 2:
输入:
A = [14, 10, 5, 1, 0]
输出: 1
解释:为了实现振幅是1,我们可以将 14,10,5 替换成 1 或者 0示例 3:
输入:
A = [11, 0, -6, -1, -3, 5]
输出: 3
解释:可以将11,-6,5都换成-2注意事项
N是一个整数而且范围是: [2, 10000]
A数组中的每一个元素都是整数而且范围是: [-50, 50]

2. 解题

  • 排序后,舍去两端的3个点,共有4种情况(一端为0,1,2,3 个)
class Solution {public:int MinimumAmplitude(vector<int> &A) {if(A.size() <= 4)return 0;sort(A.begin(),A.end());int j = A.size()-1;return min(A[j]-A[3],min(A[j-1]-A[2],min(A[j-2]-A[1], A[j-3]-A[0])));}
};

or

class Solution {public:int MinimumAmplitude(vector<int> &A) {if(A.size() <= 4)return 0;sort(A.begin(),A.end());int Min = INT_MAX;int i = 3, j = A.size()-1, count = 4;while(count--){Min = min(Min, A[j]-A[i]);j--,i--;}return Min;}
};

LintCode 1859. 最小振幅(排序)相关推荐

  1. 天池 在线编程 最小振幅(排序)

    文章目录 1. 题目 2. 解题 1. 题目 https://tianchi.aliyun.com/oj/231188302809557697/235445278655844966 给定一个由N个整数 ...

  2. java算法----排序----(6)希尔排序(最小增量排序)

    1 package log; 2 3 public class Test4 { 4 5 /** 6 * java算法---希尔排序(最小增量排序) 7 * 8 * @param args 9 */ 1 ...

  3. 1859. 将句子排序

    1859. 将句子排序 一个 句子 指的是一个序列的单词用单个空格连接起来,且开头和结尾没有任何空格.每个单词都只包含小写或大写英文字母. 我们可以给一个句子添加 从 1 开始的单词位置索引 ,并且将 ...

  4. 最小成本排序:两种情况

    最小成本排序:两个数交换,这两个数相加,一组数全部交换成有序之后,累加和就是成本. 如何求出最小的成本,有一点难度,主要在于有两种情况的分析,一种是每个元素交换到正确位置(会形成一些闭合的圆),进行计 ...

  5. Java八大排序算法之希尔排序(最小增量排序)算法

    希尔排序(Shell Sort)是插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本.希尔排序是非稳定排序算法.该方法因DL.Shell于1959年提出而得名. ------- ...

  6. 【HDU】1859 最小长方形

    Problem Description 给定一系列2维平面点的坐标(x, y),其中x和y均为整数,要求用一个最小的长方形框将所有点框在内.长方形框的边分别平行于x和y坐标轴,点落在边上也算是被框在内 ...

  7. 51nod 1098 最小方差 排序+前缀和+期望方差公式

    题目: 题目要我们,在m个数中,选取n个数,求出这n个数的方差,求方差的最小值. 1.我们知道,方差是描述稳定程度的,所以肯定是着n个数越密集,方差越小. 所以我们给这m个数排个序,从连续的n个数中找 ...

  8. lintcode:最小编辑距离

    最小编辑距离 给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数. 你总共三种操作方法: 插入一个字符 删除一个字符 替换一个字符 样例 给出 work1=&quo ...

  9. LeetCode 1859. 将句子排序

    文章目录 1. 题目 2. 解题 1. 题目 一个 句子 指的是一个序列的单词用单个空格连接起来,且开头和结尾没有任何空格.每个单词都只包含小写或大写英文字母. 我们可以给一个句子添加 从 1 开始的 ...

最新文章

  1. 小眼睛适合大框还是小框眼镜_北京潘家园眼镜城良心商家推荐
  2. Amazon EC2云端服务器的使用方法
  3. 12 求1+2+...+n
  4. HTTP 三次握手  建立连接 和  四次握手断开连接
  5. mysql killed 不掉,解决:kernel: Out of memory: Killed process 15967, UID 27, (mysqld).
  6. ASP.NET-FineUI开发实践-9(四)
  7. Java Bean验证基础
  8. 在武大吉奥期间的任务
  9. C++ 标准库 —— random
  10. C语言函数调用参数类型不匹配
  11. Qt配置OpenCV教程,无需复杂的编译过程,(详细版)
  12. AFTN和SITA报文简介
  13. 软件读写中文字符的文件出现乱码的解决办法
  14. python移动平均算法_移动平均算法
  15. 在 Word 2013 中编写公式并标号
  16. 一般硬盘读取速度和写入速度是多少
  17. Dem与遥感影像制作三维效果简单教程
  18. 网站Cache全分析
  19. 服务器查看账户被锁的信息吗,远程服务器帐户被锁定
  20. 基于数据挖掘的客户流失分析案例

热门文章

  1. frame越过另一个frame_拥抱swoole(三)之用php实现一个混合服务器
  2. linux ssh yum升级_Linux 运维必备的 13 款实用工具,拿好了
  3. Linux: shell 中命令代换 $() 和 ``(有图有代码有真相!!!)
  4. linux中的信号2——进程如何处理信号?
  5. 搭建golang webcron 定时任务管理平台
  6. git clone 指定分支的内容
  7. 《MySchool数据库设计优化》内部测试
  8. FineUI(专业版)v3.0.0 发布,手机、平板和桌面全支持!
  9. Android sqlite数据库操作通用框架AHibernate(二)源码-用于交流
  10. 时间同步绝对是一个大问题