我觉得第三题可以简单一点,就是先排序,然后分成3部分,前面小的*2,中间不变,最后大的除以2,这样总共k+1种情况(前面0个-前面k个)。这样,新的最小值就在三个数之间选出来(3个部分的第一个数,都能O(1)取到),新的最大值也在三个数之间。然后取出最小和最大算一下。这样就是排序nlogn,后面O(k)就可以