思路是对数组排序
设
- S [ i ] S[i] S[i] 是数组的前缀和
- R [ i ] R[i] R[i] 是递增排序后的数组
遍历数组,如果出现 S [ i − 1 ] + 1 < R [ i ] S[i - 1] + 1 < R[i] S[i−1]+1<R[i],就代表S[i - 1] + 1是不能被合成出来的数字
因为:
假设 [1,i - 1]能表示1~X,那么加入
R
[
i
]
R[i]
R[i]的后,能表示
[
1
,
(
X
+
R
[
i
]
)
]
[1,(X+R[i])]
[1,(X+R[i])]的数字
排序过后的枚举是为了依次找到最小的几个数字。