题解 | 【模板】序列操作

【模板】序列操作

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(" ")
                           ));
    }
}

全部评论
嗯哼,第一次写,给自己加个油吧
点赞 回复 分享
发布于 2025-11-11 01:05 河南

相关推荐

粉红恶魔派星星:炸了,偶遇kpi面。面试官一直在忙自己的事情。1.手写责任链 2.手写快排 3.linux定时任务的命令 4.springboot的定时任务 5.问了一条实习
今天你投了哪些公司?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务