HDU2019--数列有序!
2016-10-10 09:15
253 查看
Problem Description
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
Output
对于每个测试实例,输出插入新的元素后的数列。
Sample Input
3 3
1 2 4
0 0
Sample Output
1 2 3 4
实现代码(这里只是个人的解决办法,简便方法有很多读者自己去思考):
有n(n<=100)个整数,已经按照从小到大顺序排列好,现在另外给一个整数x,请将该数插入到序列中,并使新的序列仍然有序。
Input
输入数据包含多个测试实例,每组数据由两行组成,第一行是n和m,第二行是已经有序的n个数的数列。n和m同时为0标示输入数据的结束,本行不做处理。
Output
对于每个测试实例,输出插入新的元素后的数列。
Sample Input
3 3
1 2 4
0 0
Sample Output
1 2 3 4
实现代码(这里只是个人的解决办法,简便方法有很多读者自己去思考):
package newStart; import java.util.Scanner; public class P2019 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt();//控制数组中元素的个数 int[] a = new int ;//数组多加一个位置 int m = sc.nextInt();//待插入到数 int index = 0; boolean isIn = false; //特判 if(n==0 && m==0){ break; } for(int i=0;i<n;i++){//一次给数组中的每个数进行赋值操作 a[i] = sc.nextInt(); } for(int i=0;i<n;i++){//一次给数组中的每个数进行赋值操作 if(m<a[i]){ index = i;//记住这个位置 isIn = true; break; } } int[] b = new int[n+1];//定义一个新的数组来接收已经排好序的数组 if (index==0 && isIn==false) {//说明m的值是最大的 for (int i = 0; i < b.length-1; i++) { b[i] = a[i]; } b[b.length-1] = m;//m放在最后一个位置 }else { for (int i = 0; i < index; i++) { b[i] = a[i]; } b[index] = m; for (int i = index + 1; i < b.length; i++) { b[i] = a[i - 1]; } } //System.out.println("index:"+index); //输出 for(int i=0;i<b.length-1;i++){ System.out.print(b[i]+" "); } System.out.println(b[b.length-1]); } } }
相关文章推荐
- hdu2019 数列有序!
- hdu2019 数列有序
- HDU2019数列有序!
- HDU2019 数列有序!
- Hdu2019 数列有序!
- HDU2019_数列有序!
- hdu2019 数列有序!
- (解题报告)HDU2019---数列有序!
- HDU2019-数列有序!
- HDU2019 数列有序!【入门】
- hdu2019 数列有序!
- hdu2019――数列有序解题报告
- 2019 数列有序!
- 一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,这个序列的初始值从1开始,但是1并不在这个数列中。求第1500个值是多少?
- hdoj-2019 数列有序!【水】
- HDU 2019 数列有序 (water)
- HDU - 2019 数列有序!
- 一个有序数列,序列中的每一个值都能够被2或者3或者5所整除,
- 【杭电-oj】-2019-数列有序!(用两个数组分前后两部分输出)
- 查找最长有序数列