M位置的圆移位阵列的最快算法是什么?
例如,[3 4 5 2 3 1 4]班次M = 2个位置应该是[1 4 3 4 5 2 3].
非常感谢.
因此,对于步长为1,我想要数组:
{1, 2, 3, 4}
成为:
{4, 1, 2, 3}
对于大小为2的步骤,结果将是:
{3, 4, 1, 2}
这是我现在使用的代码:
private static int[] shiftArray(int[] array, int stepSize) {
  if (stepSize == 0)
     return array;
  int shiftStep = (stepSize > array.length ? stepSize % array.length : stepSize);
  int[] array2 = new int[array.length];
  boolean safe = false;
  for (int i = 0; i < array.length; i++) {
     if (safe) {
        array2[i] = array[i - shiftStep];
     }
     else {
        array2[i] = array[array.length - shiftStep + i];
        safe …