自己寫的方法,不太好:
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
lens = len(nums)
if k == 0:
return
else:
if k < lens:
nums = self.rotate_module(nums, k, lens)
if k == lens:
pass
if k > lens:
nums = self.rotate_module(nums, k % lens, lens)
def rotate_module(self, nums: List[int], k: int, lens) -> None:
nums.extend(nums[:(lens - k)])
for i in range(lens - k):
nums.pop(0)
return nums
看到大神的nums[:]也寫了一個:
class Solution:
def rotate(self, nums: List[int], k: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
lens = len(nums)
if k == 0:
return
else:
if k < lens or k > lens:
nums[:] = nums[lens - (k % lens):] + nums[:lens - k % lens]
if k == lens:
pass
證明在python中開闢內存比數組傳遞耗時更長