我刚刚完成了一项可信性测试,仅获得了81%的分数。当一个'大排列'对它进行测试时,我的代码失败了。不适用于大排列的代码
我不知道为什么这会失败,因为spec说所有的值都是整数,我的for循环只使用int值。我真的很感激,如果有人可以看看我的代码,并告诉我,为什么它提供了大量的排列值-1: -
https://codility.com/demo/results/demo4G8CJS-9YN/
class Solution {
public int solution(int X, int[] A) {
// write your code in Java SE 8
int target = X;
int[] path = new int[X];
for(int i = 0; i < A.length-1; i++) {
if(A[i] != path[A[i]-1]) {
path[(A[i]-1)] = A[i];
target--;
}
if(target==0) {
return i;
}
}
return -1;
}
}
“大”是否大于2^31? – SLaks
尝试把int计数器=(A.length -1),cuz每次发生这个循环时,这个数字再次计算 – vlatkozelka
这个问题似乎是题外话题,因为它是关于审查代码。也许http://codereview.stackexchange.com/会是一个更好的地方。 – Chris