写起来很麻烦的一道题。不过思路还算简单。 首先不考虑套娃的情况。len的长度内有a个0和b=len-a个1,最多会产生a*b个01子序列。在范围内可以使用如下的策略进行填充。(对应代码中的fill函数)从左到右,记录当前剩余未填充的1数量cnt1,还需产生的01序列数量k。 如果k>=cnt1,那么填充一个0,因为后面无论如何分配都一定有cnt1个1,总会产生cnt1个01子序列。否则填充一个1,使得cnt1--。 容易知道这样肯定是能填充满的。接下来是套娃的情况。将区域分为左,中,右三个部分,其中中间是之前已经填充好的,左边和右边需要现在填充。 这里没必要计算太复杂的约束,可以以O(n...