Java 如何向左旋转数组中的元素
我想将这些元素向左旋转。请帮帮我Java 如何向左旋转数组中的元素,java,arrays,rotation,logic,Java,Arrays,Rotation,Logic,我想将这些元素向左旋转。请帮帮我 public class RotateLeft { public static void main(String args[]) { int array[] ={1,2,3}; int myarray[]= new int[3]; //Here is my logic for(int i=0;
public class RotateLeft
{
public static void main(String args[])
{
int array[] ={1,2,3};
int myarray[]= new int[3];
//Here is my logic
for(int i=0; i<myarray.length-1; i++)
{
myarray[i]=array[i+1];
myarray[i+1]=array[i];
}
System.out.print(myarray[0]+" "+myarray[1]+ " "+ myarray[2]);
}
}
公共类RotateLeft
{
公共静态void main(字符串参数[])
{
int数组[]={1,2,3};
int myarray[]=新int[3];
//这是我的逻辑
对于(int i=0;i请尝试以下方法:
int[] myarray = new int[array.length];
for (int i = 0; i <= myarray.length - 1; i++) {
if (i != myarray.length - 1) {
myarray[i] = array[i + 1];
} else {
myarray[i] = array[0];
}
}
int[]myarray=newint[array.length];
对于(int i=0;i请尝试以下方法:
int[] myarray = new int[array.length];
for (int i = 0; i <= myarray.length - 1; i++) {
if (i != myarray.length - 1) {
myarray[i] = array[i + 1];
} else {
myarray[i] = array[0];
}
}
int[]myarray=newint[array.length];
对于(int i=0;i数组中只有3个元素吗?只要大小较小且固定,就可以硬编码解决方案(我想这也会缩短执行时间)。如果大小是可变的,请查看通用解决方案的可能重复。数组中是否只有3个元素?只要大小较小且固定,您就可以对解决方案进行硬编码(我认为这也会缩短执行时间)。如果大小是可变的,请查看通用解决方案的可能重复项。从myarray[0]
到最后一项,“在末尾”发送了错误的值。请思考myarray[0]会发生什么情况
在第一次循环中……Kevin Anderson,我用多个测试用例测试了这个循环,没有发现任何问题。它工作正常,你能用例子解释一下你的观点吗?是的,这工作正常,无论数组是空的,只包含一个项目,还是多个项目。我的不好;出于某种原因,我认为它在旋转 数组本身内部
,这需要在临时变量中保存array[0]
的初始值。从myarray[0]
到最后一项的“末尾”发送了错误的值。请思考myarray[0]会发生什么情况
在第一次循环中……Kevin Anderson,我用多个测试用例测试了这个循环,没有发现任何问题。它工作正常,你能用例子解释一下你的观点吗?是的,这工作正常,无论数组是空的,只包含一个项目,还是多个项目。我的不好;出于某种原因,我认为它在旋转 数组本身内部
,需要在临时变量中保存数组[0]
的初始值。