题解 | 【模板】序列操作
【模板】序列操作
https://www.nowcoder.com/practice/12da4185c0bb45918cfdc3072e544069
import java.util.Arrays;
import java.util.Scanner;
import java.util.Comparator;
import java.util.stream.Collectors;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static int len;
public static Integer[] arr;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
int q = Integer.parseInt(in.nextLine());
arr = new Integer[q];
for (int i = 0; i < q; i++) {
String str = in.nextLine();
String[] strs = str.split(" ");
int num1 = Integer.parseInt(strs[0]);
switch (num1) {
case 1:
add(Integer.parseInt(strs[1]));
break;
case 2:
remove();
break;
case 3:
print3(Integer.parseInt(strs[1]));
break;
case 4:
add(Integer.parseInt(strs[1]), Integer.parseInt(strs[2]));
break;
case 5:
sort();
break;
case 6:
reverse();
break;
case 7:
printLen();
break;
case 8:
printAll();
break;
default:
System.out.println("something wrong");
}
}
}
}
public static void add(int num) {
arr[len++] = num;
}
public static void remove() {
arr[len-- - 1] = 0;
}
public static void print3(int index) {
System.out.println(arr[index]);
}
public static void add(int index, int num) {
for (int i = len; i > index + 1; i--) {
arr[i] = arr[i - 1];
}
arr[index + 1] = num;
len++;
}
public static void sort() {
Arrays.sort(arr, 0, len);
}
public static void reverse() {
Arrays.sort(arr, 0, len, Comparator.reverseOrder());
}
public static void printLen() {
System.out.println(len);
}
public static void printAll() {
System.out.println(Arrays.stream(arr)
.limit(len)
.map(String::valueOf)
.collect(
Collectors.joining(" ")
));
}
}
查看18道真题和解析