Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Logic:
- reverse the last k elements
- reverse the remaining elements
- revese the whole array now
- */
- class Solution {
- public:
- void rotate(vector<int>& nums, int k) {
- int n=nums.size();
- k%=n;
- if(n==1) return;
- reverse(nums.begin(),nums.begin()+n-k);
- reverse(nums.begin()+n-k,nums.end());
- reverse(nums.begin(),nums.end());
- }
- };
- #Python
- def rev(arr,a,b):
- while a<b:
- arr[a],arr[b]=arr[b],arr[a]
- a+=1
- b-=1
- class Solution:
- def rotate(self, nums: List[int], k: int) -> None:
- n=len(nums)
- k=k%n #if k>size of array
- rev(nums,0,n-k-1)
- rev(nums,n-k,n-1)
- rev(nums,0,n-1)
- return rev
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement