Given an array, rotate the array to the right by k steps, where k is non-negative.
Example 1:
Input:[1,2,3,4,5,6,7]
and k = 3 Output:[5,6,7,1,2,3,4]
Explanation: rotate 1 steps to the right:[7,1,2,3,4,5,6]
rotate 2 steps to the right:[6,7,1,2,3,4,5]
rotate 3 steps to the right:[5,6,7,1,2,3,4]
Example 2:
Input: [-1,-100,3,99]
and k = 2
Output: [3,99,-1,-100]
Explanation:
rotate 1 steps to the right: [99,-1,-100,3]
rotate 2 steps to the right: [3,99,-1,-100]
Note:
- Try to come up as many solutions as you can, there are at least 3 different ways to solve this problem.
- Could you do it in-place with O(1) extra space?
My solution:
class Solution:
def rotate(self, nums, k):
"""
:type nums: List[int]
:type k: int
:rtype: void Do not return anything, modify nums in-place instead.
"""
size = len(nums)
tmp1 = nums[:size-k]
del nums[:size-k]
nums += tmp1
'DataStructure > Array' 카테고리의 다른 글
Single Number (0) | 2018.10.29 |
---|---|
Contains Duplicate (0) | 2018.10.29 |
Best Time to Buy and Sell Stock II (0) | 2018.10.29 |
Remove Duplicates from Sorted Array (0) | 2018.10.22 |
Maximum Absolute Difference (0) | 2018.10.17 |