First example blog from local word2013
Leetcode 相关:
public static void swap(int array[], int i, int j) { final int temp = array[i]; array[i] = array[j]; array[j] = temp; }
public static void reverse(int array[], int begin, int end) { // 左闭右开区间 end--; while (begin < end) swap(array, begin++, end--); }
/* * 先将A 的元素倒置,即1, 2, 3, 4, 5 变成5, 4, 3, 2, 1,然后将前k 位倒置, 即3, 4, 5, 2, 1,再将后n-k * 位倒置,即3, 4, 5, 1, 2,完成。 */ public void ror3(int array[], int n, int k) { k %= n;
if (k == 0) return; reverse(array, 0, n); reverse(array, 0, k); reverse(array, k, n - k); } |