189. 輪轉數組
-
給定一個整數數組 nums,將數組中的元素向右輪轉 k 個位置,其中 k 是非負數
-
示例 1:
- 輸入: nums = [1,2,3,4,5,6,7], k = 3
- 輸出: [5,6,7,1,2,3,4]
-
示例 2:
- 輸入:nums = [-1,-100,3,99], k = 2
- 輸出:[3,99,-1,-100]
思路
- 首先計算有效輪轉次數,輪轉 k 次和輪轉 k % len(nums) 次效果相同
- 向右輪轉 k 個位置,相當于將數組的最后 k 個元素移動到前面,即新數組 = nums[-k:] + nums[:-k],注意前后拼接順序
實現
class Solution(object):def rotate(self, nums, k):""":type nums: List[int]:type k: int:rtype: None Do not return anything, modify nums in-place instead."""k = k % len(nums)nums[:] = nums[-k:] + nums[:-k]return nums
- 時間復雜度: O(n)
- 空間復雜度: O(1)