数组循环右移的O(1)解法

忘了在哪看到的这个写法,其实很取巧

[cpp]

#include <iostream>

#include <vector>
using namespace std;

int main(){
int n, k;
vector<int> a, b;

cin &gt;&gt; n &gt;&gt; k;//intput the total number and pivot
int in;

for (size_t i = 0; i != n; ++i){
    cin &gt;&gt; in;
    if (i &lt; k){
        a.push_back(in);
    }
    else {
        b.push_back(in);
    }
}

for (size_t i = 0; i != a.size(); ++i){
    b.push_back(a[i]);
}

for (const auto &amp;i : b)cout &lt;&lt; i &lt;&lt; ' ';

return 0;

}
[/cpp]

您的支持将鼓励我继续分享~