我一直在在线竞争编码论坛中解决问题并遇到了这个问题:http://www.spoj.com/problems/PQUEUE/。我已经在Java中实现了相同的功能,它可以很好地适用于我能想到的所有测试用例。但是,当我尝试提交代码时,它正在获得NZEC。以下是我的代码的一部分。输入范围处理得很好。所以不要担心。在这里,in
是Scanner
类的对象。
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);
任何帮助将不胜感激。我已经在这段代码中使用了好几天了,但却没有任何关于我在哪里得到错误的线索。非常感谢。