Medium
An array nums of length n is beautiful if:
nums is a permutation of the integers in the range [1, n].0 <= i < j < n, there is no index k with i < k < j where 2 * 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 <= 1000class Solution {
private var memo: MutableMap<Int, IntArray>? = null
fun beautifulArray(n: Int): IntArray? {
memo = HashMap()
return helper(n)
}
private fun helper(n: Int): IntArray? {
if (n == 1) {
memo!![1] = intArrayOf(1)
return intArrayOf(1)
}
if (memo!!.containsKey(n)) {
return memo!![n]
}
val mid = (n + 1) / 2
val left = helper(mid)
val right = helper(n - mid)
val rst = IntArray(n)
for (i in 0 until mid) {
rst[i] = left!![i] * 2 - 1
}
for (i in mid until n) {
rst[i] = right!![i - mid] * 2
}
memo!![n] = rst
return rst
}
}