摘要:
通过一个case解释算法过程.比如 case :5 9第一步 ,序列为 1 2 3 4 5, 逆序数为 9输出序列中第4个数4,因为 4后面有3个比4小的,而且删掉4后最大还可以得到6个逆序(3+6>=9),所以4符合条件,5也符合,但是5比4大,3或更小不符合.第二步,序列为1 2 3 5, 逆序数为9-3=6输出序列中第4个数5,计算同上....以上每一步计算出应该输出序列中第几个数可以O(1)时间实现,但是对于计算序列中第n个数是几,实现为O(N),N=50000超时,使用线段树可以在O(logN)时间内计算出来,程序的时间复杂度为O(N*logN),得解.源代码:View Cod 阅读全文