我得到了一个整数数组,我想要这个数组的最后一个元素在顶部移动 N 次,像这样:
int[] array = {1, 2, 3, 4, 5};
现在,最后一个元素将移动 3 次,这应该是预期的结果:
3, 4, 5, 1, 2
我试过这样的:
int[] tab = new int[5];
tab[0] = 1;
tab[1] = 2;
tab[2] = 4;
tab[3] = 5;
tab[4] = 6;
int[] secondTab = new int[5];
int N = 3;
int j = 0;
for (int i=0; i<tab.length-1; i++){
secondTab[i] = tab[(tab.length-1)-N];
N--;
if (secondTab[i+1]==0){
secondTab[i+1] = tab[j];
}
}
这显然是错误的代码,j 根本没有增加,所以它只适用于这个例子,但我想知道最好的方法是什么?
最佳答案
如果你想右移N
次,这意味着在第i
位置的元素将在(i+N)%tab .lenth
-第:
for (int i = 0; i < tab.length; i++) {
secondTab[(i+N)%tab.length] = tab[i];
}
关于java - 如何在顶部移动列表的最后一个元素 N 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37006903/