天天看點

杭電Oj2019

import java.util.Scanner;  

public class Main2019{  

  public static void main(String[] args) {  

      Scanner in = new Scanner(System.in);  

      while(in.hasNext()) {

        int n = in.nextInt();

        int m = in.nextInt();

        int arr[] = new int [n+2];

        int arre[] = new int[n+2];

        int number = 0;

        if (n==0&&m==0) 

   System.exit(0);

if (n<=100) {

          for(int i = 1;i<=n;i++) {

        arr[i]=in.nextInt();

            arre[i]=arr[i];

          }

          for(int j = 1;j<=n;j++) {

         if (m>=arr[j]&&m<=arr[j+1]) {

number=j;

arr[j+1]=m;

break;

 }

          }

 for(int i = number+2;i<=n+1;i++) {

 arr[i]=arre[i-1];

 }

 for(int i = 1;i<=n;i++) {

 System.out.print(arr[i]+" ");

 }

 System.out.println(arr[n+1]);

}

      }

  }

}    

因為涉及到排序,于是查詢了一下《算法》,也因為有一些方法寫的不是很詳細,是以不能短時間弄懂。是以直接自己寫的最聊撇的代碼。 借鑒了一位同學的想法——直接創造兩個數組,然後再插入新的資料之後,再複制移動資料就好。