奇怪的排序问题
时间限制:C/C++/Rust/Pascal 5秒,其他语言10秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

操场上有 n个人排成一队,这 n 个人身高互不相同,可将他们的身高视为一个 1 到 n 的排列。
这时需要把队伍变成升序,也就是从矮到高排序。
每次可以选择一个人,让这个人和在他身后的人比高矮,如果比对方高,则交换位置并继续下一次比较,直到比对方矮或者已经在队尾。
现在给出数 n 和一个 1 到 n 的排列,求最少的选择次数,使数组变为升序。

示例1

输入

复制
4,[4,1,2,3]

返回值

复制
1

备注:

n<=10^6
数据包含一个整数n和一个含有n个元素的数组,表示从队头到队尾的人的身高。
输出一个整数表示答案。