Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python xoay phải mảng n vị trí

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].