gpt4 book ai didi

java - 如何动态控制for循环的嵌套层次?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:23:51 27 4
gpt4 key购买 nike

我正在实现一些算法,其中循环嵌套级别的数量由输入决定。

例如,如果输入是二维的,则有两个嵌套的for循环,如下所示:

for(int i=0; i<N; i++) {
for(int j=i+1; j<N; j++) {
if(table[i][j] == -1) {
for(int c=0; c<C; c++) {
int ii = table[i][c];
int jj = table[j][c];
sort(ii, jj);
if((T[ii][jj] != -1 && T[ii][jj] < l)) {
T[i][j] = l;
break;
}
}
}
}
}

如果输入是 3 维的,那么它会像下面这样:

for(int i=0; i<N; i++) {
for(int j=i+1; j<N; j++) {
for(int k=j+1; k<N; k++) {
if(table[i][j][k] == -1) {
for(int c=0; c<C; c++) {
int ii = table[i][c];
int jj = table[j][c];
int kk = table[k][c];
sort(ii, jj, kk);
if((T[ii][jj][kk] != -1 && T[ii][jj][kk] < l)) {
T[i][j][k] = l;
break;
}
}
}
}
}

如果只有这两种情况,那么我可以编写两个版本的嵌套 for 循环。但输入的维度可以是 2N 之间的任何值。在这种情况下,如何动态控制嵌套循环级别,或者是否有任何替代方法可以解决这个问题?

最佳答案

做到这一点的唯一真正方法是使用递归。

您编写了一个包含单个 for 循环的方法,如果循环需要更深入,则每次循环时,该方法都会使用正确的设置调用自身以运行该嵌套循环。

关于java - 如何动态控制for循环的嵌套层次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21602836/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com