想到的方法比较简单时间复杂度m*n,就是将数组最后一个元素存如temp,其余元素向前平移一格最后将temp赋给数组开头,重复m次。
#include<stdio.h>
#include <iostream>
#include<stack>
#include<math.h>
using namespace std;
int main()
{
int n, m;
int temp;
cin >> n;
cin >> m;
int* a = new int[n];
for (int i = 0;i <n;i++) {
cin >> a[i];
}
while (m) {
temp = a[n-1];
for (int i = n-1;i > 0;i--) {
a[i] = a[i-1];
}
a[0] = temp;
temp = a[n-1];
m--;
}
for (int i = 0;i < n;i++) {
if (i != n-1)
cout << a[i] << " ";
else
cout << a[i];
}
}