Java中的数组左旋转

 收藏

给定一个整数数组和一个数字,我需要对该数组执行左旋转并返回更新后的数组,以空格分隔的整数的单行形式打印出来。 我通过了7/9检查,但是一些带有大型阵列的检查由于超时而失败。

时间必须小于等于4秒。

static int[] rotLeft(int[] a, int d) {
       int x = 0;
       while (x != d) {
           int first = a[0];
           int last = a[a.length - 1];
           for (int i = 0; i < a.length - 1; i++) {
               a[i] = a[i + 1];
               if (i == a.length - 2)
                   a[a.length - 2] = last;
               a[a.length - 1] = first;
           }
           x++;
       }
       return a;
   }
回复