##### Short Problem Definition:

Rotate an array to the right by a given number of steps.

##### Link

##### Complexity:

expected worst-case time complexity is `O(N)`

##### Execution:

There are multiple solutions to this problem. I picked the one that does not create a copy of the array.

##### Solution:

```
def reverse(arr, i, j):
for idx in xrange((j - i + 1) / 2):
arr[i+idx], arr[j-idx] = arr[j-idx], arr[i+idx]
def solution(A, K):
l = len(A)
if l == 0:
return []
K = K%l
reverse(A, l - K, l -1)
reverse(A, 0, l - K -1)
reverse(A, 0, l - 1)
return A
```