Skip to content

Latest commit

 

History

History
59 lines (46 loc) · 1.36 KB

0189._rotate_array.md

File metadata and controls

59 lines (46 loc) · 1.36 KB

###189. Rotate Array

题目: https://leetcode.com/problems/rotate-array/

难度 : Easy

思路 1

首先,要知道一点,k如果大于nums的长度了,那么其实进行 k % len(nums) 次就行了

其次,要注意k 为0的情况

class Solution(object):
    def rotate(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: void Do not return anything, modify nums in-place instead.
        """
        k = k % len(nums)
        if k != 0:
            tmp = nums[-k:]
            for j in range(len(nums)-1, k-1, -1):
                nums[j] = nums[j-k]
            nums[:k] = tmp

思路 2

还有作弊大法,贼🐂批

class Solution(object):
    def rotate(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: void Do not return anything, modify nums in-place instead.
        """
        k %= len(nums)
        nums[:] = nums[-k:] + nums[:-k]

思路 3

直接从末尾取出,然后插入头部即可,简单明了

    def rotate(self, nums: List[int], k: int) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        k = k % len(nums)
        for _ in range(k):
            nums.insert(0, nums.pop(-1))