看了看好像没有第三题的题解,我简单说一下思路吧,其实这个题的本质上是找区间最值,简单的想一想就知道,第一位数字越大,整个数字肯定越大,但是同时我们要考虑到要能取到k个数,所以第一个数的区间就出来了,就是【0,N-k】,在这个区间里可能有多个最大的数,简单的贪心我们就知道要选尽可能左边的最大值,我们假设我们尽可能靠左的最大值的下标为p,那么第二个数的区间也就出来了,就是【p+1,N-k+1】同上找到第二位数并以此类推我们就找到了最大的数,但是直接暴力的复杂度太高,找区间最值的方法有很多,ST表,线段树,树状数组,但是因为这里每个数的最大值小于10,所以我们可以记录下来每一种数的所有的出现位置,然后从9到0开始找有没有合适的,下面是AC代码,对上面说的情况有一定的优化。