Xoay phải mảng n lần: mỗi lần lấy phần tử cuối đưa lên đầu.
Ví dụ
arr = [31, 42, 13, 34, 85, 0, 99, 1, 3]
n = 3
print("Gốc:", arr)
print(f"Xoay phải {n} lần:")
for _ in range(n):
last = arr[-1]
for i in range(len(arr)-1, 0, -1):
arr[i] = arr[i-1]
arr[0] = last
print("Kết quả:", arr)
Kết quả
Gốc: [31, 42, 13, 34, 85, 0, 99, 1, 3] Xoay phải 3 lần: Kết quả: [99, 1, 3, 31, 42, 13, 34, 85, 0]
Giải thích
- Lặp n lần.
- Mỗi lần: lưu phần tử cuối, dịch toàn mảng sang phải 1, gán đầu = phần tử cuối cũ.
- Độ phức tạp O(n*k). Tối ưu:
arr[-n:] + arr[:-n](slicing) O(n). - Ví dụ: xoay phải 3: [99,1,3, 31,42,13,34,85,0].