用Python旋转数组
假设我们有一个数组A。我们必须向右旋转k步。因此,如果数组为A=[5、7、3、6、8、1、5、4],并且k=3,则输出将为[1,5,4,5,7,3,6,8]。步骤就像
[4,5,7,3,6,8,1,5]
[5,4,5,7,3,6,8,1]
[1,5,4,5,7,3,6,8]
为了解决这个问题,我们将按照以下步骤进行。
令n为数组的大小
k=kmodn
A=从n–k到end的A子数组+从0到n–k–1的A子数组
让我们看下面的实现以更好地理解-
示例
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.
"""
n = len(nums)
k%=n
nums[:] = nums[n-k:]+nums[:n-k]
nums = [5,7,3,6,8,1,5,4]
ob1 = Solution()ob1.rotate(nums, 3)
print(nums)输入值
nums = [5,7,3,6,8,1,5,4] k = 3
输出结果
[1,5,4,5,7,3,6,8]