2007. 从双倍数组中还原原数组

从双倍数组中还原原数组

解法一: 排序, 贪心

go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func findOriginalArray(changed []int) []int {
n := len(changed)
sort.Ints(changed)
queue := []int{}
ans := make([]int, n>>1)
i := 0
for _, num := range changed {
if len(queue) > 0 && num == queue[0] {
queue = queue[1:]
} else {
if i == len(ans) {
return []int{}
}
ans[i] = num
i++
queue = append(queue, num<<1)
}
}
return ans
}
作者

wuhunyu

发布于

2024-04-18

更新于

2025-01-15

许可协议