【牛客网】入门训练--有序序列插入一个整数

    技术2026-10-01  6

    题目描述 有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。

    输入描述: 第一行输入一个整数N(0≤N≤50)。

    第二行输入N个升序排列的整数,输入用空格分隔的N个整数。

    第三行输入想要进行插入的一个整数。

    输出描述: 输出为一行,N+1个有序排列的整数。

    示例1 输入 5 1 6 9 22 30 8 输出 1 6 8 9 22 30

    AC代码如下

    import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int len = sc.nextInt(); int[] arr = new int[100]; int index; for (int i=0; i<len; i++) arr[i] = sc.nextInt(); int num = sc.nextInt(); // for (int i=0; i<len; i++) // System.out.print(arr[i] + " "); // System.out.println(); //假设还没插入 boolean flag = false; for (int i=0; i<len; i++){ if (arr[i] > num){ index = i; //记录元素插入位置 for (int j=len-1; j>=index; j--){ arr[j+1] = arr[j]; arr[j] = num; } len++; //插入成功,flag=true flag = true; break; } } //若是在数组中没有找到,则说明是插入到数组最后 if (!flag) arr[len++] = num; for (int i=0; i<len; i++) System.out.print(arr[i] + " "); } }
    Processed: 0.009, SQL: 9