2 条题解
- 1
信息
- ID
- 957
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 138
- 已通过
- 11
- 上传者
2 个小时的比赛,竟然还要我用脑子思考...
排个序就可以知道每个数应该在的位置。我们设原位置为 s,应该的位置为 t,则 s~t 的位置是一定要排序的。我们可以在一个差分数组上标记,将 s ~ t 的位置加上 1 。这个操作是 O(n) 的。最后再前缀和差分数组,找出有 k 个位置为 0 ,则最终答案为 n−k。
总时间复杂度为 O(nlogn)。
代码过于简单,就不放了。
对不起我错了两个小时的比赛就是要用脑子思考