ITPub博客

首页 > 应用开发 > Python > 旋转数组

旋转数组

Python 作者:一只小木鱼 时间:2020-12-25 12:44:51 0 删除 编辑

leetcode:189. 旋转数组 python算法

  • 题目描述
    • 示例
    • 说明:
  • 代码
  • 执行效率

题目描述

给定一个数组,将数组中的元素向右移动 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,4]

示例 2:
输入: [-1,-100,3,99] 和 k = 2
输出: [3,99,-1,-100]
解释:
向右旋转 1 步: [99,-1,-100,3]
向右旋转 2 步: [3,99,-1,-100]

说明:

尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。
要求使用空间复杂度为 O(1) 的 原地 算法。

代码

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

执行效率

35 个测试用例
执行用时: 144 ms
内存消耗: 14.2 MB

文章来源:CSDN-小周同学啦啦啦

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69991606/viewspace-2745283/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 经典程序题
请登录后发表评论 登录
全部评论

注册时间:2020-12-24

  • 博文量
    12
  • 访问量
    6201