数组翻转
作者:
风霜莫蚀岩
,
2022-03-21 21:04:54
,
所有人可见
,
阅读 167
数组顺时针旋转
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)cin>>a[i];
reverse(a,a+k);
reverse(a+k,a+n);
reverse(a,a+n);
for(int i=0;i<n;i++)cout<<a[i]<<ends;
cout<<endl;
return 0;
}
数组逆时针旋转
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=10010;
int a[N];
int main(){
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)cin>>a[i];
reverse(a+n-k,a+n);
reverse(a,a+n-k);
reverse(a,a+n);
for(int i=0;i<n;i++)cout<<a[i]<<ends;
cout<<endl;
return 0;
}
就是把k个数移到后面或前面
顺时针的话(a,a+k)与(a+k,a+n)两块都是逆序然后反转为最终正序
逆时针的话也一样(a+n-k,a+n)(a,a+n-k)都逆然后全反