轮转的步骤与之前的java代码不同,相对之前的更高效一些。
//
#include <iostream>
#include<vector>
using namespace std;
void display(vector<int> arrays,int len){
for(int i = 0;i<len/2;i++)
cout<<arrays[i]<<"....."<<arrays[len-i-1]<<endl;
}
int reset(vector<int> &arrays,int flag,int len){
if(flag==0)
flag = len -1;
else
flag = 0;
int temp = arrays[len -1];
arrays[len-1] = arrays[0];
arrays[0] = temp;
return flag;
}
void moveByWalk(vector<int> &arrays,int walk,int flag,int len){
int begin = len-flag-1;//begin为首次移动的位置,即flag对应的另外一个位置;
int index = begin;
int temp=0,lasttemp = arrays[index];
int mod = len-1;//空白位置不计入
for(int i=0;i<len-2;i++){
int nextpos = (index+walk)%mod;
temp = arrays[nextpos];
arrays[nextpos]= lasttemp;
index = nextpos;
lasttemp &