java - 如何在顶部移动列表的最后一个元素 N 次

标签 java arrays

我得到了一个整数数组,我想要这个数组的最后一个元素在顶部移动 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/

相关文章:

java - Intellij 构建与 Maven 构建不同

Java 通用 SOAP 客户端库

java - 将字符串存储在数组中并分割字符串

javascript - 将对象转换为对象数组?

arrays - 数组中的反转,我错了什么。请查看下面的数学/伪代码

JavaFx:使用加法/乘法/双向绑定(bind)数字

java - 无法在IntelliJ中配置和运行Java项目

javascript - 如何为所有列拆分每列数组? (JavaScript)

javascript - 短路 Array.forEach 就像调用 break

c - 未经许可更改内存值