牛牛有n朵需要摆放的花,但是每朵花呢,高度都不一样,牛牛不喜欢相邻的花高度相差太多,这样会影响美感。 所以牛牛提出了一个“丑陋度”的概念,“丑陋度”意思为在一个摆放序列中,相邻花高度差的最大值。而且牛牛是一个完美主义者,所以他希望: 1.将这些花摆成首尾相接的圆形 2.为了美观,他希望摆放的花“丑陋度”最小 程序应返回:按照这些花排成一个圆的顺序,输出在多个摆放花的序列中,最小的“丑陋度”。
排序,开一个数组,然后左右依次放数,最后取最大差值
class Solution { public: /** * 返回按照这些花排成一个圆的序列中最小的“丑陋度” * @param n int整型 花的数量 * @param array int整型vector 花的高度数组 * @return int整型 */ int solve(int n, vector<int>& array) { int flag[100005]; sort(array.begin(),array.end()); flag[0] = array[0]; int i,j,k; int l = 1,r = n-1; for(i=1;i<n;++i) { if(i%2==1) flag[l++] = array[i]; else flag[r--] = array[i]; } flag[n] = flag[0]; int ans = 0; for(i=1;i<=n;++i) { int dx = abs(flag[i]-flag[i-1]); ans = max(ans,dx); } return ans; } };