已知一个奇怪的队列,这个队列中有 n 个数,初始状态时,顺序是 1,2,3,4,…n,是 1-n 按顺序排列。这个队列只支持一种操作,就是把队列中的第 i 号元素提前到队首 (1<i<=n) ,如有 4 个元素,初始为 1,2,3,4 ,可以将 3 提前到队首,得到 3,1,2,4 。 现在给出一个经过若干次操作之后的序列,请你找出这个序列至少是由原序列操作了多少次得到的。
数据范围:
第一行是一个整数n(1<=n<=10^5),表示序列中数字的数量。 接下来一行有n个数,是1-n的一个全排列。数字之间用空格隔开。
输出仅包含一个数字,表示至少操作了几次
5 5 2 1 3 4
2
按顺序把 2 和 5 提到队列前
var lines=[] while(line=readline()){ lines.push(line) } var arr = [], n = parseInt(lines[0]), r = n - 1; for (item of lines[1].split(' ')) { arr.push(parseInt(item)) } for (let i = n-1; i >= 0; i--) { if (arr[i] > arr[i - 1]) { r-- } else break } console.log(r)