gpt4 book ai didi

java - Java 中的 Ripple Out 整数数组优化

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:33 27 4
gpt4 key购买 nike

我正在尝试编写一个函数,该函数将接受数组长度,并返回“波纹输出”数组。

例如:
rippleOut(3) 将返回 [0,1,0]
rippleOut(6) 将返回 [0,1,2,2,1,0]

这就是我到目前为止所得到的。它有效,但我确信有一种更有效的方法来做到这一点:

public int[] rippleOut(int size){
int[] output = new int[size];
int middle = 0;
boolean even = false;

if(size%2==0){
middle = (size/2-1);
even = true;
} else {
middle = (int)Math.floor(size/2);
}

for(int i = middle; i>0; i--){
output[i] = middle - (middle-i);
if (even){
output[middle+(middle - i+1)] = middle - (middle-i);
} else {
output[middle+(middle - i)] = middle - (middle-i);
}

}

return output;
}

最佳答案

这是 Java 8 版本:

int size = 11;
int odd = (size % 2 == 0) ? 0 : 1;
int mid = (size / 2) - 1;
int[] output = IntStream.range(0, size - 1)
.map(i -> (i > mid) ? mid + (mid - i) + odd : i).toArray();

IntStream.of(output).forEach(System.out::print);

关于java - Java 中的 Ripple Out 整数数组优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42646359/

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