打印锯齿矩阵(基本数据结构-可变数组ArrayList的使用)

锯齿矩阵是指每一行包含的元素个数不相同的矩阵,比如:

3 5 2 6 1
2 3 4
1 6 2 7

读入若干对整数 (x,y),表示在第 x行的末尾加上一个元素 y。输出最终的锯齿数组。初始时矩阵为空。

输入格式

第一行输入两个整数 n,m(1n,m10000),其中 n表示锯齿数组的行数,m 表示插入的元素总数。

接下来一共 m 行,每行两个整数x,y(1xn,0y10000),表示在第x 行的末尾插入一个元素 y。

输出格式

一共输出 n 行,每行若干个用空格分隔的整数。如果某行没有任何元素,则输出一个空行。

样例输入

3 12
1 3
2 2
2 3
2 4
3 1
3 6
1 5
1 2
1 6
3 2
3 7
1 1

样例输出

3 5 2 6 1
2 3 4
1 6 2 7

体会:第一次使用ArrayList数组,java的类库实在是太强大了!
package 计蒜客;

import java.util.ArrayList;
import java.util.Scanner;

public class 打印锯齿矩阵 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        int n=scan.nextInt();
        int m=scan.nextInt();
        ArrayList<Integer>[] als=new ArrayList[n];
        for(int i=0;i<n;i++){
            als[i]=new ArrayList<Integer>();
        }
        //als[0].add(12);
        for(int i=0;i<m;i++){
            als[scan.nextInt()-1].add(scan.nextInt());
        }
        for(int i=0;i<n;i++){
            int j=0;
            while(j<als[i].size()){
                System.out.print(als[i].get(j));
                if(j!=als[i].size()-1){
                    System.out.print(" ");
                }
                j++;
            }
            System.out.println();
        }
    }

}

 

posted @ 2018-03-18 10:38  henu小白  阅读(843)  评论(0编辑  收藏  举报