​​相邻的数据差值最小

牛牛希望将n朵高度不同的花以最小的“丑陋度”摆放成圆形,其中“丑陋度”定义为相邻花朵高度差的最大值。通过特定的排序策略,将偶数下标和奇数下标的花朵分别从前向后和从后向前排列,计算奇数序列、偶数序列及首尾花朵高度差的最大值,返回这个最小的“丑陋度”。
摘要由CSDN通过智能技术生成


题目:

牛牛有n朵需要摆放的花,但是每朵花呢,高度都不一样,牛牛不喜欢相邻的花高度相差太多,这样会影响美感。

所以牛牛提出了一个“丑陋度”的概念,“丑陋度”意思为在一个摆放序列中,相邻花高度差的最大值。而且牛牛是一个完美主义者,所以他希望:

1.将这些花摆成首尾相接的圆形

2.为了美观,他希望摆放的花“丑陋度”最小

程序应返回:按照这些花排成一个圆的顺序,输出在多个摆放花的序列中,最小的“丑陋度”。

输入: 5,[2,1,1,3,2] 

输出:1

说明:可以摆成 1 2 3 2 1这样的序列,最小的“丑陋度”为1


代码:

class Solution {
public:
    /**
     * ​返回按照这些花排成一个圆的序列中最小的“丑陋度”
     * @param n int整型 花的数量
     * @param array int整型vector 花的高度数组
     * @return int整型
     */
    int solve(int n, vector<int>& array) {
        sort(array.begin(), array.end());
        int minValue=array[1]-array[0];
        for(int i=0;i<n-2;i+=2)
        {
            if(array[i+2]-array[i]>minValue)
                minValue=array[i+2]-array[i];
   
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值