太难了 幸运数一眼没思路,骗了点分; 排列感觉是二分,试了一下确实,一直超时是63%,开始以为是计算math.log2耗时,后来发现只要循环n次必超时,O(n)都不行,最后想到用数组提前保存一下同一个对数结果对应的数字区间,计算好每个区间内数字个数终于100%了... n = 5 count = 0 list = [0]*31 for i in range(1,len(list)): # list[i] 代表2**i 2**(i-1)有多少个元素 list[i] = 2**i-2**(i-1) cur = ...