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

相关推荐

11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
专心打鱼:互联网搬运工,贴子都要偷
点赞 评论 收藏
分享
牛客网
牛客企业服务