輪轉(zhuǎn)數(shù)組
輪轉(zhuǎn)數(shù)組(Rotate Array)?? ?題目描述?:給定一個(gè)數(shù)組,將數(shù)組向右輪轉(zhuǎn) k 個(gè)位置。 ?示例?: 輸入:nums = [1,2,3,4,5,6,7], k = 3 輸出:[5,6,7,1,2,3,4]
void reverseArray(int a[], const int n, const int start, const int end) { if (n <= 0 || start < 0 || end <= 0 || start >= end || end >= n) return; int left = start; int right = end; while (left < right) { int temp = a[right]; a[right] = a[left]; a[left] = temp; left++; right--; } } int main() { int a1[] = {1, 2, 3, 4, 5, 6, 7}; const int arr1Size = sizeof(a1) / sizeof(int); const int k = 3; for (int i = 0; i < arr1Size; i++) { printf("%d ", a1[i]); } printf("\n"); reverseArray(a1, arr1Size, 0, arr1Size - 1); reverseArray(a1, arr1Size, 0, k - 1); reverseArray(a1, arr1Size, k, arr1Size - 1); for (int i = 0; i < arr1Size; i++) { printf("%d ", a1[i]); } printf("\n"); return 0; }