未优化写作的题解: 设取k个数,集合为A (A的大小为k),要构成1~k。剩下n-k个数够成集合B 设这k个数的和为sum, 若sum>=1+...+k,显然可行(内部匀,多了丢给B) 若sum<1+...+k,需要从B借,而B内每个数ai能提供ai-1(ai最后不小于1) 如此一看,不如选A的时候就选最大的k个数。 -------------------- 可二分答案, check k=mid是否可行: 取最大的k个数,若sum大于1+...+k,true,若sum不够,看剩下要借的,B能不能提供