陣列迴圈右移 k 位
例: arr[] = 12345678; k = 2
1.逆序前 6(8-2) 位 -> 65432178
2.逆序後 2 位 -> 65432187
3.全部逆序 -> 78123456
private static void reverseK(int[] arr,int k) {
if(arr != null) {
int n = arr.length;
k = k % n;
reverse(arr, 0, n-1-k);
reverse(arr, n-k, n-1 );
reverse(arr, 0, n-1);
}
}
private static void reverse(int[] arr,int begin,int end) {
for( ; begin < end; begin++,end--) {
int temp = arr[begin];
arr[begin] = arr[end];
arr[end] = temp;
}
}