淘宝2012校招面试 有一个整数数组,现要求实现这个整数数组的循环右移
/** * ,有一个整数数组,现要求实现这个整数数组的循环右移。 * * 如:1,2,3,4,5 则循环右移两位后结果是:4,5,1,2,3。 * @return */ public static int[] move(int[] a,int step){ int lenght=a.length; step=step%lenght; int temp[]=new int[step]; //保存需要置前的数据 for(int i=0;i<step;i++){ temp[i]=a[lenght-step+i]; } //其余的数据向后移 for(int i=lenght-step-1;i>=0;i--){ a[i+step]=a[i]; } //数据前置 for(int i=0;i<step;i++){ a[i]=temp[i]; } return a; }