在Java中实现Priority Queue时获取运行时异常

时间:2015-06-12 06:28:32

标签: java data-structures priority-queue

我一直在在线竞争编码论坛中解决问题并遇到了这个问题:http://www.spoj.com/problems/PQUEUE/。我已经在Java中实现了相同的功能,它可以很好地适用于我能想到的所有测试用例。但是,当我尝试提交代码时,它正在获得NZEC。以下是我的代码的一部分。输入范围处理得很好。所以不要担心。在这里,inScanner类的对象。

int t = in.nextInt(), i, k, count;

    while (t-- > 0) {
        ArrayDeque<Integer> q = new ArrayDeque<Integer>();
        ArrayList<Integer> ar = new ArrayList<Integer>();

        int n = in.nextInt();
        int m = in.nextInt();

        for (i = 0; i < n; i++) {
            k = in.nextInt();
            q.offer(k);
            ar.add(k);
        }

        Collections.sort(ar, Collections.reverseOrder());
        count = 0;
        int num = 0, max = ar.get(0), pos = m;

        while (true) {
            num = q.peek();
            if (max > num) {
                if (pos == 0)
                    pos = n - 1;
                else
                    pos--;
                q.removeFirst();
                q.offer(num);

            } else {
                if (pos == 0)
                    break;
                else
                    pos--;
                count++;
                q.removeFirst();
                ar.remove(0);
                max = ar.get(0);
            }
        }
        System.out.println(count + 1);

任何帮助将不胜感激。我已经在这段代码中使用了好几天了,但却没有任何关于我在哪里得到错误的线索。非常感谢。

0 个答案:

没有答案