-
Notifications
You must be signed in to change notification settings - Fork 0
/
RotatedArray.cpp
101 lines (74 loc) · 1.83 KB
/
RotatedArray.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//////////////////////////////////////__189__LEETCODE////////////////////////////////////
// Q. Rotate an Array by kth steps.
// MEDIUM
// class Solution {
// public:
// void rotate(vector<int>& nums, int k) {
// vector<int> temp(nums.size());
// for(int i=0;i<nums.size();i++){
// temp[(i+k)%nums.size()]=nums[i];
// }
// nums=temp;
// }
// };
/*
if k=n, then roatted array will be same as given array,
therefore we have take k%n
*/
// TC---->O(n)
// SC---->O(n)/O(1)
// BEST APPROACH ---> REVERSING//
//////////////////////////////////////CODE STUDIO////////////////////////////////////
// EASY
// OPTIMAL
// Q. Rotate an Array by kth steps.
// SOLUTION 1:
// #include <bits/stdc++.h>
// #include <iostream>
// using namespace std;
// void revArray(int arr[], int n, int k)
// {
// reverse(arr,arr+k);
// reverse(arr+k,arr+n);
// reverse(arr,arr+n);
// }
// int main() {
// int n;
// cin >> n;
// int arr[n];
// for(int i = 0; i < n; i++)
// cin >> arr[i];
// int k;
// cin >> k;
// revArray(arr, n, k);
// for(int i = 0; i < n; i++)
// cout << arr[i] << " ";
// return 0;
// }
// SOLUTION 2:
// #include <bits/stdc++.h>
// #include <iostream>
// using namespace std;
// void revArray(int arr[], int start, int end)
// {
// for (int i = start, j = end; i < j; i++, j--)
// {
// swap(arr[i], arr[j]);
// }
// }
// int main()
// {
// int n;
// cin >> n;
// int arr[n];
// for (int i = 0; i < n; i++)
// cin >> arr[i];
// int k;
// cin >> k;
// revArray(arr, 0, k - 1); ---> reverses the k elements
// revArray(arr, k, n - 1); ---> reverses the remaining n-k elements
// revArray(arr, 0, n - 1); ---> again reverses the (reversed array)
// for (int i = 0; i < n; i++)
// cout << arr[i] << " ";
// return 0;
// }