我可以将这两个变量for循环拆分为两个嵌套循环吗?

o3imoua4  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(274)

我想知道关于给定的 for 我觉得很奇怪:

for (int i = 0, j = s.length - 1; i < j; i++, j--)

到目前为止,我只使用了一个变量的for循环。但是在这个例子中,一个循环中有两个变量。
我能分一杯吗 for 循环成两个嵌套循环?

for (int j = 0; j < s.length - 1; j--) {
    for (int i = 0; i < j; i++) {
    }
}
ia2d9nvy

ia2d9nvy1#

这是错误的转换,正确的转换将是:

int j = s.length - 1;
for (int i = 0; i < j; i++) {
    // inside logic
    j--;
}
ef1yzkbh

ef1yzkbh2#

不。
原文是这样的:

sssssss
i     j

sssssss
 i   j

sssssss
  i j

sssssss
   i
   j

例如,它有(s.length)/2个迭代。用i迭代一半,用j迭代另一半。
建议的备选方案是2d,例如(s.length*s.length)/2次迭代(假设 j++ 而不是破碎的 j-- ). 它覆盖了一个三角形。

sssssss
j
ij
iij
iiij
iiiij
iiiiij
iiiiiij

相关问题