vector<int> v{1,2,3,4,5,6,7,8,9};
int rot = 2;
//rotate left
rotate(v.begin(), v.begin() + rot, v.end()); //vector: 3 4 5 6 7 8 9 1 2
//rotate right
rotate(v.begin(), v.begin()+v.size()-rot, v.end()); //vector: 8 9 1 2 3 4 5 6 7
#include<iostream>
using namespace std;
void leftRotateByOne(int arr[], int n)
{
int temp = arr[0];
for (int i = 0; i < n - 1; i++)
{
arr[i] = arr[i + 1];
}
arr[n - 1] = temp;
}
void leftRotate(int arr[], int d, int n)
{
for (int i = 0; i < d; i++)
{
leftRotateByOne(arr,n);
}
}
void print(int arr[],int n)
{
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
void main()
{
int arr[] = { 1,2,3,4,5,6,7 };
int n = sizeof(arr) / sizeof(arr[0]);
// function calling.
leftRotate(arr, 2, n);
print(arr, n);
}
###############################
# Rotate array clockwise
###############################
vector<int> kClockwiseRotate(vector<int> a, int k) {
int n = a.size() - 1;
while (k != 0) {
int x = a[n];
for (int i = n; i >= 0; i--) {
a[i + 1] = a[i];
a[i] = x;
}
k--;
}
return a;
}
###############################
# Rotate array anti-clockwise
###############################
vector<int> kAntiClockwiseRotate(vector<int> a, int k) {
int n = a.size() - 1;
while (k != 0) {
for (int i = 0; i < n; i++) {
int x = a[i + 1];
a[i + 1] = a[i];
a[i] = x;
}
k--;
}
return a;
}
#include<iostream>
using namespace std;
void leftRotateByOne(int arr[], int n)
{
int temp = arr[0];
for (int i = 0; i < n - 1; i++)
{
arr[i] = arr[i + 1];
}
arr[n - 1] = temp;
}
void leftRotate(int arr[], int d, int n)
{
for (int i = 0; i < d; i++)
{
leftRotateByOne(arr,n);
}
}
void print(int arr[],int n)
{
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}
void main()
{
int arr[] = { 1,2,3,4,5,6,7 };
int n = sizeof(arr) / sizeof(arr[0]);
// function calling.
leftRotate(arr, 2, n);
print(arr, n);
}