博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode之Rotate Array
阅读量:2343 次
发布时间:2019-05-10

本文共 564 字,大约阅读时间需要 1 分钟。

题目描述如下:

Rotate an array of n elements to the right by k steps.

For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

旋转数组k次,即将数组中位于最后的数字不断挪到第一个位置;
解法1:
O(n) time, O(n) space
        self.nums = nums[-k:] + nums[:-k]
        for i in range(len(self.nums)):
            nums[i] = self.nums[i]
解法二:
O(n) time, o(1) space
        self.reverse(nums, 0, n - 1)
        self.reverse(nums, 0, k - 1)
        self.reverse(nums, k, n - 1)
    def reverse(self, nums, start, end):
        while start < end:
            temp = nums[start]
            nums[start] = nums[end]
            nums[end] = temp
            start += 1
            end -= 1
解法三:
将数组中元素右移

转载地址:http://lmbvb.baihongyu.com/

你可能感兴趣的文章
为什么Java中没有SortedList?
查看>>
在Go中表示枚举的惯用方法是什么?
查看>>
在React中显示或隐藏元素
查看>>
暂存已删除的文件
查看>>
为什么需要在脚本文件的开头加上#!/ bin / bash?
查看>>
ReactJS-每次调用“ setState”时都会调用渲染吗?
查看>>
如何解决错误:使用nodejs时监听EADDRINUSE?
查看>>
@import vs #import - iOS 7
查看>>
如何使用C#解析JSON?
查看>>
ng-if和ng-show / ng-hide有什么区别
查看>>
用Java复制文件的标准简洁方法?
查看>>
管理webpack中的jQuery插件依赖项
查看>>
删除可能不存在的文件的大多数pythonic方式
查看>>
如何在Eclipse中为Java文本编辑器更改字体大小?
查看>>
我们应该@Override接口的方法实现吗?
查看>>
ng-repeat定义次数而不是重复数组?
查看>>
选择语句以查找某些字段的重复项
查看>>
引导程序中“col-md-4”,“col-xs-1”,“col-lg-2”中数字的含义
查看>>
JavaScript ES6类中的私有属性
查看>>
List vs tuple,何时使用? [重复]
查看>>