编程题
### 问题描述 小丫在床头柜里发现了一个神秘的卡片盒,里面有一堆卡片,每张卡片上都写着一个「唯一」的数字。 她发现卡片盒有一种奇特的魔法。每次操作可以选择「任意」两张卡片,卡片盒会施展魔法将这两张卡片中「数字较小」的那张放回到盒子最上面,然后再将「数字较大」的那张放到盒子最下面。 例如:假设一开始卡片盒中的卡片「从上到下」的数字顺序是 $1, 4, 5, 3, 7, 2, 6$,她选择了 $5$ 和 $7$ 两张卡片,此时卡片盒中剩下的卡片顺序变为 $1, 4, 3, 2, 6$;卡片盒施展魔法后的卡片顺序就变为了 $5, 1, 4, 3, 2, 6, 7$。 你的任务是帮助小丫计算出,要使得卡片盒中的卡片按照数字的「升序」排序的最少操作次数。 ### 输入格式 第一行:一个整数 $n$,表示卡片盒中的卡片数量。其中 $1 \le n \le 10^5$。 第二行: $n$ 个不同的整数,数字之间用一个空格分隔,范围从 $1 \sim n$,表示卡片盒中卡片的初始顺序。 ### 输出格式 输出一个整数表示使卡片盒中的卡片按照数字的「升序」排序的最少操作次数。 ### 样例输入 ```text 7 1 4 5 3 7 2 6 ``` ### 样例输出 ```text 3 ``` 说明:第一次选择 $3$ 和 $5$ 两张卡片进行操作,操作完成后卡片顺序为 $3, 1, 4, 7, 2, 6, 5$;第二次选择 $2$ 和 $6$ 两张卡片进行操作,操作完成后卡片顺序为 $2, 3, 1, 4, 7, 5, 6$;第三次选择 $1$ 和 $7$ 两张卡片进行操作,操作完成后卡片顺序为 $1,2,3,4,5,6,7$。
查看答案
赣ICP备20007335号-2