给定一个数组,将数组中的元素向右移动 个位置,其中 是非负数。

示例 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) 的原地算法。

先看一个超出时间限制的情况(ps:本题不需要返回值)

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."""for i in range(k):temp=nums[len(nums)-1]for j in range(len(nums)):nums[len(nums)-1-j]=nums[len(nums)-2-j]nums[0]=temp

另一种简单解法

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)#保证循环次数在0-len(nums)之间nums[:]=nums[len(nums)-k:]+nums[:len(nums)-k]#切割成两块重新组合

leetcode189 python旋转数组相关推荐

  1. Python 旋转数组的最小数字

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最 ...

  2. python旋转数组_Python3实现旋转数组的3种算法

    一.试题 给出一个数组,将数组中的元素往右边移动k个位置,当中k是非负数. 比如说: 输入:[1,2,3,4,5,6,7]和k=3 输出:[5,6,7,1,2,3,4] 解释: 往右边旋转1步:[7, ...

  3. Algorithm:C++/python语言实现之求旋转数组最小值、求零子数组、求最长公共子序列和最长公共子串、求LCS与字符串编辑距离

    Algorithm:C++/python语言实现之求旋转数组最小值.求零子数组.求最长公共子序列和最长公共子串.求LCS与字符串编辑距离 目录 一.求旋转数组最小值 1.分析问题 2.解决思路 二.求 ...

  4. 面试题11. 旋转数组的最小数字

    把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转, ...

  5. 【算法编程】旋转数组查找最小数字

    题目来源:牛客网 题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2, ...

  6. 旋转数组的最小元素——《剑指offer》

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转.请返回旋转 ...

  7. 剑指offer:面试题11. 旋转数组的最小数字

    题目:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2, ...

  8. python添加数组元素_Python列表附录–如何向数组添加元素,并附带示例说明

    python添加数组元素 欢迎 (Welcome) Hi! If you want to learn how to use the append() method, then this article ...

  9. 剑指offer_第6题_旋转数组的最小数字

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋 ...

最新文章

  1. 牛津大学的研究人员首次在人体植入“闭环”生物电子研究系统
  2. 金鑫是著名高校计算机,金鑫 个人简历
  3. winxp登陆后自动注销
  4. (转) 使用vivado创建工程 1
  5. UVA 10534 Wavio Sequence DP LIS
  6. 什么是线程单线程和多线程_什么是多线程?看我多线程七十二变,你能记住吗?...
  7. how to make milt-Lang windows installer All in 1
  8. Html显示缩略图点击展示,JS点击缩略图整屏居中放大图片效果
  9. SIR模型简单了解(Susceptible Infected Recovered Model)
  10. 基于eTS高效开发HarmonyOS课程类应用
  11. 用百度大脑EasyDL平台轻松玩转AI
  12. SpringAOP源码解析之aop:aspectj-autoproxy标签解析
  13. 证明集合的包含关系和相等的常用的方法
  14. java:AXIS调用webService接口,返回String类型xml,并用dom4j简单解析xml
  15. 【HDU3292】数学_佩尔方程
  16. python求平均值
  17. 使用navicat连接mysql出现提示10038错误的解决方法
  18. IE8 松散耦合进程框架(Loosely-Coupled IE (LCIE)--特性介绍
  19. EBYTE ROLA通信模块初步学习
  20. B2:Unity制作Moba类游戏——聊天系统

热门文章

  1. 计算机游戏155,MAME0.155经典1430款游戏合集
  2. IT出路:跳出TCO,着眼TVO(总体拥有价值)
  3. 使用ffmpeg将图片合成为视频(附完整参数介绍)
  4. 新媒体运营:如何策划出一场完整高效的活动方案?(一) 黎想
  5. 旅游类App的原型制作分享-Klook
  6. Mac 使用 tar 压缩生成 “._” 文件的解决办法
  7. TPH-YOLOv5: Improved YOLOv5 Based on Transformer Prediction Head for Object Detection on Drone-captu
  8. python 列表根据汉字拼音进行排序 / 查询结果集(列表嵌套字典)根据特定key字段拼音进行整体排序
  9. 工业数据安全治理参考框架
  10. kali虚拟机安装提示安装系统步骤失败