因为单纯用sort进行排序,超时了小白骗分
给定序列 (a1, a2, · · · , an) = (1, 2, · · · , n),即 ai = i。 小蓝将对这个序列进行 m 次操作,每次可能是将 a1, a2, · · · , aqi 降序排列,或者将 aqi , aqi+1, · · · , an 升序排列。 请求出操作完成后的序列。
public class Main {
static int n,m;//长度跟操作次数
static int pi,qi;
static Integer[] arr;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
arr = new Integer[n+1];
for (int i = 1; i <= n; i++) {
arr[i] = i;
}
for(int i = 0;i < m;i++) {
f(sc.nextInt(),sc.nextInt());
}
for (int i = 1; i <= n; i++) {
System.out.print(arr[i]+" ");
}
}
static void f(int pi,int qi) {
if(pi == 0) {
//降序
Arrays.sort(arr,1,qi+1);
for(int i = 1,j = qi;i<j;i++,j--) {
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}else {
//升序
Arrays.sort(arr,qi,arr.length);
}
// for (int i = 1; i <= n; i++) {
// System.out.print(arr[i]+" ");
// }
}
}