leetcode 932. 漂亮数组

题解

可以知道A[k] * 2是一个偶数, 当 i < k < j时,为了使 A[k] * 2 != A[i] + A[j],可以让左边全奇数,右边全偶数

示例代码(go)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
func beautifulArray(N int) []int {
res := make([]int, 0)

if N == 1 {
return []int{1}
}
left := beautifulArray((N +1) / 2)
right := beautifulArray(N / 2)

for _, v := range left {
res = append(res, 2 * v - 1)
}
for _, v := range right {
res = append(res, 2 * v)
}
return res
}