【初级】旋转数组

作者: hello_quokka | 来源:发表于2018-04-02 21:48 被阅读13次

问题:
将包含 n 个元素的数组向右旋转 k 步。
例如,如果 n = 7 , k = 3,给定数组 [1,2,3,4,5,6,7] ,向右旋转后的结果为 [5,6,7,1,2,3,4]。
提示:
要求空间复杂度为 O(1)。

关键词:
空间复杂度O(1): 即只能在原有数组上改动,不能额外增加数组。
切片:切片的语法为[开始:结束:步长],要注意切片为左闭右开,即左边为下标的数开始到结束前一位数。
python中下标的总结:python数组和列表的下标从0开始,因为这样切片的表示更加美观。
range()函数总结:range()生成一个整数序列,下标从0开始,例:range(5)生成0到4的整数。

代码:

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

相关文章

  • 【初级】旋转数组

    问题:将包含 n 个元素的数组向右旋转 k 步。例如,如果 n = 7 , k = 3,给定数组 [1,2,...

  • 初级算法-数组-旋转数组

    给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 进阶:尽可能想出更多的解决方案,至少有三种...

  • LeetCode初级-旋转数组

    题目: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 说明: 尽...

  • 初级算法-数组-旋转图像

    给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地[h...

  • LeetCode初级算法--数组02:旋转数组

    LeetCode初级算法--数组02:旋转数组 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事...

  • [剑指offer]08-旋转数组的最小数字

    旋转数组的最小数字 题目 给定一个递增的旋转数组A,返回旋转数组中的最小值。旋转数组:给定一个已排序的数组,假设为...

  • 旋转数组的最小值

    旋转数组的最小值 所谓旋转数组,即是递增有序数组旋转右移动若干位得到的数组,这里的右移和java里的>>>有点不同...

  • Day6 剑指offer:旋转数字的最小数

    把一个数组最开始的若干个数组搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组...

  • 39. 恢复旋转排序数组

    给定一个旋转排序数组,在原地恢复其排序。说明:什么是旋转数组?比如,原始数组为[1,2,3,4], 则其旋转数组可...

  • 剑指Offer算法题-旋转数组的最小数字--Swift

    题目:把一个数组最开始的若干个元素搬到数组的尾部,我们称之为数组的旋转。输入一个递增数组的旋转,输出旋转数组的最小...

网友评论

    本文标题:【初级】旋转数组

    本文链接:https://www.haomeiwen.com/subject/yzbxhftx.html