NYOJ 540

  为了给学弟学妹讲课,我水了一道题……

import java.util.Arrays;
import java.util.Scanner;

public class NYOJ540 {

    public static void main(String[] args) {
        int from, to, T;
        Node node[];
        Scanner sc = new Scanner(System.in);
        T = sc.nextInt();
        int temp;
        while(T-->0) {
            from = sc.nextInt();
            to = sc.nextInt();
            node = new Node[to-from+1];
            int j = 0;
            for(int i=0; i<node.length; i++) {
                //q已经初始化为0了
                node[i] = new Node();
            }
            for(int i=from; i<=to; i++) {
                node[j].p = i;
                temp = i;
                while(temp>0) {
                    /*
                     * 必须在大while循环构造node数组
                     * 否则就第一组数据正确
                     * 因为下面这一句用到了以前的q值
                     */
                    node[j].q = node[j].q*10 + temp%10;
                    temp /= 10;
                }
                j++;
            }
            /*
             * 只看API函数,第三个参数是toIndex,以为是下标
             * 谁知道具体一看不包括,wa了n次
             */
            Arrays.sort(node,0,to-from+1);
            System.out.print(node[0].p);
            for(int i=1; i<to-from; i++) {
                System.out.print(" "+node[i].p);
            }
            System.out.println(" "+node[to-from].p);
        }
    }
}

class Node implements Comparable<Node>{
    int p;
    int q;
    
    public Node() {
        this.p = 0;
        this.q = 0;
    }

    @Override
    public int compareTo(Node o) {
        // TODO Auto-generated method stub
        Node other = o;
        return this.q - other.q;
    }
}
posted @ 2013-08-04 00:28  加拿大小哥哥  阅读(548)  评论(0编辑  收藏  举报