概述
题目描述:
对于某些固定的 N,如果数组 A 是整数 1, 2, …, N 组成的排列,使得:
对于每个 i < j,都不存在 k 满足 i < k < j 使得 A[k] * 2 = A[i] + A[j]。
那么数组 A 是漂亮数组。
给定 N,返回任意漂亮数组 A(保证存在一个)。
思路:
例如n=8
1,2,3,4,5,6,7,8
分成1,3,5,7和2,4,6,8
然后再分成1,5和3,7和2,6和4,8
最后在合成一起
代码如下:
class Solution {
public:
vector<int> helper(const vector<int>& v){
if(v.size()==1)
return v;
vector<int>v1,v2;
for(int i=0;i<v.size();i+=2){
v1.push_back(v[i]);
}
for(int i=1;i<v.size();i+=2){
v2.push_back(v[i]);
}
vector<int>res;
v1=helper(v1);
v2=helper(v2);
for(int x:v1){
res.push_back(x);
}
for(int x:v2){
res.push_back(x);
}
return res;
}
vector<int> beautifulArray(int N) {
vector<int>a;
for(int i=1;i<=N;i++){
a.push_back(i);
}
return helper(a);
}
};
最后
以上就是爱听歌画笔为你收集整理的leetcode 932 漂亮数组的全部内容,希望文章能够帮你解决leetcode 932 漂亮数组所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复