def rotate(nums,k):
k%=len(nums)
nums[:]=nums[-k:]+nums[:-k]
public void rotate(int[] nums,int k){
k%=nums.length;
rev(nums,0,nums.length-1); rev(nums,0,k-1); rev(nums,k,nums.length-1);
}
void rev(int[] a,int l,int r){
while(l<r){int t=a[l];a[l++]=a[r];a[r--]=t;}
}
Python slicing trivial. Java three-reverse trick.
def rotate(nums,k):
k%=len(nums)
nums[:]=nums[-k:]+nums[:-k]
public void rotate(int[] nums,int k){
k%=nums.length;
rev(nums,0,nums.length-1); rev(nums,0,k-1); rev(nums,k,nums.length-1);
}
void rev(int[] a,int l,int r){
while(l<r){int t=a[l];a[l++]=a[r];a[r--]=t;}
}
1. k = k % length 2. Three reverses