lc5832. 构造元素不等于两相邻元素平均值的数组

题目链接:5832. 构造元素不等于两相邻元素平均值的数组 - 力扣(LeetCode)

题解

(错了好几次后,看预期结果看出的规律……)数字从小到大排序后,将前 n/2 个数字依次放在 1、3、5… 位置上,剩下数字依次放在 0、2、4… 位置上。这样可以保证每一个数字不可能是左右两个数字的一半。

参考代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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;
}
};

lc5832. 构造元素不等于两相邻元素平均值的数组

https://blog.xiang578.com/problem/lc5832.html

作者

Ryen Xiang

发布于

2023-07-04

更新于

2024-04-20

许可协议


网络回响

评论