LeetCode #189 Rotate Array

rotate_array.png
void rotate_inter(int *a, int n, int k) {
    int t[k];
    for (int i = 0; i < k; i++) { t[k - 1 - i] = a[n - 1 - i]; }
    for (int i = n - 1; i >= k; i--) { a[i] = a[i - k]; }
    for (int i = 0; i < k; i++) { a[k - 1 - i] = t[k - 1 - i]; }
}

void rotate(int* a, int n, int k) {
    if (k == 0) return;
    if (k < n) { 
        rotate_inter(a, n, k); 
    } else if (k > n) {
        rotate(a, n, k % n);
    }
}

你可能感兴趣的:(LeetCode #189 Rotate Array)