gpt4 book ai didi

Java - 旋转数组

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

所以目标是将数组中的元素向右旋转 a 次。举个例子;如果 a==2,则 array = {0,1,2,3,4} 将变为 array = {3,4,0,1, 2}

这是我所拥有的:

for (int x = 0; x <= array.length-1; x++){
array[x+a] = array[x];
}

但是,当 [x+a] 大于数组的长度时,这无法说明。我读到我应该将更大的数组存储在不同的数组中,但看到 a 是可变的我不确定这是最好的解决方案。提前致谢。

最佳答案

在您的代码中添加模数数组长度:

// create a newArray before of the same size as array

// copy
for(int x = 0; x <= array.length-1; x++){
newArray[(x+a) % array.length ] = array[x];
}

您还应该创建一个新的 Array 以将其复制到,这样您就不会覆盖稍后需要的值。

关于Java - 旋转数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26610309/

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