网站公司怎么做,常用的网页开发工具有哪些,宜昌市网站建设,在线制作图片书文章目录1. 题目2. 解题2.1 分治递归2.2 循环1. 题目
对于某些固定的 N#xff0c;如果数组 A 是整数 1, 2, …, N 组成的排列#xff0c;使得#xff1a;
对于每个 i j#xff0c;都不存在 k 满足 i k j 使得 A[k] * 2 A[i] A[j]。
那么数组 A 是漂亮…
文章目录1. 题目2. 解题2.1 分治递归2.2 循环1. 题目
对于某些固定的 N如果数组 A 是整数 1, 2, …, N 组成的排列使得
对于每个 i j都不存在 k 满足 i k j 使得 A[k] * 2 A[i] A[j]。
那么数组 A 是漂亮数组。
给定 N返回任意漂亮数组 A保证存在一个。
示例 1
输入4
输出[2,1,4,3]示例 2
输入5
输出[3,1,2,5,4]提示
1 N 1000来源力扣LeetCode 链接https://leetcode-cn.com/problems/beautiful-array 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
引用漂亮数组的一些性质 漂亮数组有以下的性质: 1A是一个漂亮数组如果对A中所有元素添加一个常数(b)那么A还是一个漂亮数组。 2A是一个漂亮数组如果对A中所有元素乘以一个常数(*k)那么A还是一个漂亮数组。 3A是一个漂亮数组如果删除一些A中一些元素那么A还是一个漂亮数组。 4A是一个奇数构成的漂亮数组B是一个偶数构成的漂亮数组那么AB也是一个漂亮数组 2.1 分治递归
class Solution {
public:vectorint beautifulArray(int N) {if(N 1)return {1};vectorint odd beautifulArray((N1)/2);vectorint even beautifulArray(N/2);vectorint ans;for(int i : odd)ans.push_back(i*2-1);for(int i : even)ans.push_back(i*2);return ans;}
};28 ms 18 MB
2.2 循环 class Solution {
public:vectorint beautifulArray(int N) {vectorint temp {1};int i, j 0, len;while(temp.size() N){len temp.size();for(i 0; i len; i)temp[i] 2*temp[i]-1;for(i 0; i len; i)temp.push_back(temp[i]1);}vectorint ans(N);for(i 0; i temp.size(); i){if(temp[i] N)ans[j] temp[i];}return ans;}
};4 ms 7.2 MB