题目来源
本题其实就是让我们求解: 全组合中"第m小"组合(按组合之和排大小)。
比如nums = [1,2,3],则全部组合如下:
- [1]
- [1,2]
- [1,3]
- [1,2,3]
- [2]
- [2,3]
- [3]
其中:
- 第1小的组合为[1]
- 第2小的组合为[2]
- 第3小的组合为[3]
- 第4小的组合为[1,2]
- 第5小的组合为[2,3]
- 第6小的组合为[1,2,3]
由于本题数量级较大,因此如果暴力地求出全组合,然后按组合之和排序,求出第m小的组合,肯定会超时。
如果我们将nums进行升序,比如nums = [1, 2, 3, 4],那么第1小的组合肯定是 [1]。
而第1小组合[1],可以看成是基于一个空组合[],加了一个nums最小元素1产生的。
第2小组合此时就有了两种来源:
- [1] 组合加入下一个最小元素2,形成[1,2]
- [] 组合加入下一个最