当我尝试使用java创建一个简单的k-folds应用程序时,它使用表示数据索引的数字数组,并且还需要折叠次数 它返回一个包含折叠数组的数组(第J次训练和第J次测试索引分别存储为2 * J和2 * J + 1个元素) 例如,指数= [1,2,3]和K = 2 输出应为[[1,2],[3],[3],[1,2]] 所以我做了这段代码:
private static int[][] solution(int[] indices, int K){
int rowLimit = (int)Math.ceil((double)indices.length/K);
int[][] output = new int[rowLimit*2][];
int indicesLength = indices.length;
int countIndices = 0;
for(int i=0; i<rowLimit; i++){
if (indicesLength<K){
int lastArrayLimit = indicesLength;
output[i] = new int[indicesLength];
for(int l=0; l<lastArrayLimit; l++){
output[i][l]=indices[countIndices];
countIndices++;
indicesLength--;
}
}
else{
output[i] = new int[K];
for(int j=0; j<K; j++){
output[i][j]=indices[countIndices];
countIndices++;
indicesLength--;
}
}
}
int limit = output.length;
for (int i = 0; i<rowLimit; i++){
output[limit-1] = output[i];
limit--;
}
return output;
}
但是当我尝试提交时,它不被接受。 任何人都可以告诉我它有什么问题,因为它会按顺序生成所需的输出。 谢谢。