我在java中有这段代码片段
int[] arrA = ...;
int[] arrB = ...;
int n = ...;
boolean isPermuting = true;
for(int i = 0, j = arrB.length - 1; i < n; i++, j--) {
if(arrA[i] + arrB[j] < k) {
isPermuting = false;
break;
}
}
我知道有一种方法可以在scala中将多个计数器放在同一个for循环中,但最终会嵌套。例如:
for(i <- 1 to 10 ; j <- 10 to 20) // in scala
与
相同for(int i = 1; i <= 10 ; i ++){
for(int j = 10; j <= 20; j++){ // in java
但我不知道如何为非嵌套计数器执行此操作
答案 0 :(得分:0)
我不知道在scala内联中是否有办法处理for循环,但你可以使用while循环并稍微更改组织。
var n = ...
var k = ...
val arrA : Array[Int] = ...
val arrB : Array[Int] = ...
var isPermuting: Boolean = true
var i: Int = 0
var j: Int = arrB.length - 1
breakable {
while (i < n)
if (arrA(i) + arrB(j) < k)
isPermuting = false
break
i += 1
j -= 1
isPermuting
}
编辑:这可能不是最干净的方法,但来自java很容易理解。我希望它有所帮助