給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。
說明:
class
solution
:def
rotate
(self, nums: list[
int]
, k:
int)
->
none
:"""
do not return anything, modify nums in-place instead.
"""n =
len(nums)
if k > n:
k = k % n
front = nums[
-k : n]
for i in
range
(n - k -1,
-1,-
1): nums[i + k]
= nums[i]
m =len(front)
for i in
range
(m):
nums[i]
= front[i]
切片是淺拷貝,引用陣列中元素的記憶體位址,不開闢新的記憶體空間
class
solution
:def
rotate
(self, nums: list[
int]
, k:
int)
->
none
:"""
do not return anything, modify nums in-place instead.
"""n =
len(nums)
if k > n:
k = k % n
nums[:]
= nums[n - k :
]+ nums[
: n - k]
翻轉
class
solution
:def
rotate
(self, nums: list[
int]
, k:
int)
->
none
:"""
do not return anything, modify nums in-place instead.
"""n =
len(nums)
if k > n:
k = k % n
nums.reverse(
) nums[
:k]=
reversed
(nums[
:k])
nums[k:]=
reversed
(nums[k:
])
189 旋轉陣列
給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1,2,3,4,5,6,7 和 k 3 輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,2,3,...
189 旋轉陣列
兩種思路 第乙個,開闢乙個陣列,i下標儲存原陣列中 i k mod n下標的元素,再依次賦值給原陣列。空間複雜度o n 第二個,三次逆序陣列 定義 reverse 逆轉方法 將陣列元素反轉,比如 1,2,3,4 逆轉後變成 4,3,2,1 對前 n k 個元素 1,2,3,4 進行逆轉後得到 4,3...
189 旋轉陣列
給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1,2,3,4,5,6,7 和 k 3 輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,2,3,...