题目:
牛牛有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];