排序 #贪心#
题目:5832. 构造元素不等于两相邻元素平均值的数组 - 力扣(LeetCode) (leetcode-cn.com)
方法:(错了好几次后,看预期结果看出的规律……)数字从小到大排序后,将前 n/2 个数字依次放在 1、3、5... 位置上,剩下数字依次放在 0、2、4... 位置上。这样可以保证每一个数字不可能是左右两个数字的一半。
cpp
class Solution {
public:
vector<int> rearrangeArray(vector<int>& a) {
sort(a.begin(), a.end());
vector<int>ans(a.size());
int j = 1;
for(int i=0;i<a.size();i++) {
if(j >= a.size()) {
j=0;
}
ans[j]=a[i];
j+=2;
}
return ans;
}
};
最后更新: 2022-11-15