向后滚动圆形阵列

Dan*_*ali 3 java circular-buffer

我有一个数组,我想向后滚动它的位置.

我有一个布尔数组,我需要计算从给定的单元格向前和向后的真实数量.

我知道如果N是数组中元素的数量,我可以继续做i =(i + 1)%N.但是,如果我需要以相反的方式滚动它呢?

先感谢您.

Vin*_*ele 6

我通常i = (i - 1 + N) % N用来防止负值.


小智 5

int newRightShiftIndex = (curIndex + numOfPositions)%size;
int newLeftShiftIndex = (curIndex +(size-(numOfPositions%size)))%size;
Run Code Online (Sandbox Code Playgroud)
  • curIndex - 是您当前的索引
  • numOfPositions - 您想要向后或顺时针移动的位置数
  • size - 长度,数组的大小