携程第二道编程,java无法判断输入结束

我真是服了第二题的输入了,没有给定矩阵的N,java的Scanner使用hasNextInt()无法判断输入结束

最后用了定时器强行运行逻辑后退出,通过率83.3%

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        List<Integer> list = new ArrayList();
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            public void run() {
                int n = (int) Math.sqrt(list.size());
                int[][] matrix = new int[n][n];
                for (int i = 0; i < list.size(); i++) {
                    matrix[i / n][i % n] = list.get(i);
                }
                new Main().new Rotate_Image().rotate(matrix);
                for (int i = 0; i < n; i++) {
                    for (int j = 0; j < n; j++) {
                        System.out.print(matrix[i][j] + " ");
                    }
                    System.out.println();
                }
                System.exit(0);
            }
        }, 2000);
        while (in.hasNextInt()) {
            list.add(in.nextInt());
        }
    }

各位dalao有没有更好的方法?
全部评论
N*N矩阵啊,直接nextLine第一行输入里面元素的个数不就是N了么
点赞 回复 分享
发布于 2018-03-29 20:41
很皮,完全考怎么调输入的数据。。。最后一题都没时间做
点赞 回复 分享
发布于 2018-03-30 10:19
我直接先输入一行,看这一行有多少个数,就知道n了 接下来再输入n-1行 但只通过83%
点赞 回复 分享
发布于 2018-03-29 20:44

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务