Welcome to Subscribe On Youtube
932. Beautiful Array
Description
An array nums
of length n
is beautiful if:
nums
is a permutation of the integers in the range[1, n]
.- For every
0 <= i < j < n
, there is no indexk
withi < k < j
where2 * nums[k] == nums[i] + nums[j]
.
Given the integer n
, return any beautiful array nums
of length n
. There will be at least one valid answer for the given n
.
Example 1:
Input: n = 4 Output: [2,1,4,3]
Example 2:
Input: n = 5 Output: [3,1,2,5,4]
Constraints:
1 <= n <= 1000
Solutions
-
class Solution { public int[] beautifulArray(int n) { if (n == 1) { return new int[] {1}; } int[] left = beautifulArray((n + 1) >> 1); int[] right = beautifulArray(n >> 1); int[] ans = new int[n]; int i = 0; for (int x : left) { ans[i++] = x * 2 - 1; } for (int x : right) { ans[i++] = x * 2; } return ans; } }
-
class Solution { public: vector<int> beautifulArray(int n) { if (n == 1) return {1}; vector<int> left = beautifulArray((n + 1) >> 1); vector<int> right = beautifulArray(n >> 1); vector<int> ans(n); int i = 0; for (int& x : left) ans[i++] = x * 2 - 1; for (int& x : right) ans[i++] = x * 2; return ans; } };
-
class Solution: def beautifulArray(self, n: int) -> List[int]: if n == 1: return [1] left = self.beautifulArray((n + 1) >> 1) right = self.beautifulArray(n >> 1) left = [x * 2 - 1 for x in left] right = [x * 2 for x in right] return left + right
-
func beautifulArray(n int) []int { if n == 1 { return []int{1} } left := beautifulArray((n + 1) >> 1) right := beautifulArray(n >> 1) var ans []int for _, x := range left { ans = append(ans, x*2-1) } for _, x := range right { ans = append(ans, x*2) } return ans }