LeetCode189轮转数组python示例


Posted in Python onAugust 05, 2022

1.题目

给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

示例 1:
输入: nums = [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:
输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释:
向右轮转 1 步: [99,-1,-100,3]
向右轮转 2 步: [3,99,-1,-100]

提示:
1 <= nums.length <= 105
-231 <= nums[i] <= 231 - 1
0 <= k <= 105

2.知识点

  • 使用额外的数组
  • 我们可以使用额外的数组来将每个元素放至正确的位置。用 n表示数组的长度,我们遍历原数组,将原数组下标为 i的元素放至新数组下标为 (i+k) mod n 的位置,最后将新数组拷贝至原数组即可。

3.代码

3.1 arraycopy方法解析

@param src源数组。
 @param srcPos在源数组中的起始位置。
 @param dest目标数组。
 @param destPos在目标数据中的起始位置。
 @param length要复制的数组元素的数量。
 
arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length);

3.2 scala代码

def rotate4(nums:Array[Int],k:Int):Unit = {
    val n: Int = nums.length
    val newArr = new Array[Int](n)
    for(i<-0 to n-1){
      newArr((i+k)%n) = nums(i)
    }
    System.arraycopy(newArr,0,nums,0,n)
    import java.util.Arrays
    println(Arrays.toString(nums))
  }

3.3.java代码

class Solution {
    public void rotate(int[] nums, int k) {
        int n = nums.length;
        int[] newArr = new int[n];
        for (int i = 0; i < n; ++i) {
            newArr[(i + k) % n] = nums[i];
        }
        System.arraycopy(newArr, 0, nums, 0, n);
    }
}

3.4 复杂度分析

  • 时间复杂度: O(n),其中 n 为数组的长度。
  • 空间复杂度: O(n)。

以上就是LeetCode189轮转数组python示例的详细内容,更多关于轮转数组python示例的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python Trie树实现字典排序
Mar 28 Python
Python基于pygame模块播放MP3的方法示例
Sep 30 Python
python TCP Socket的粘包和分包的处理详解
Feb 09 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
python2.7和NLTK安装详细教程
Sep 19 Python
利用python循环创建多个文件的方法
Oct 25 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
elasticsearch python 查询的两种方法
Aug 04 Python
python实现一个函数版的名片管理系统过程解析
Aug 27 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
python语言中pandas字符串分割str.split()函数
Aug 05 #Python
python绘制云雨图raincloud plot
Aug 05 #Python
python计算列表元素与乘积详情
Aug 05 #Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 #Python
python playwrigh框架入门安装使用
Jul 23 #Python
python playwright之元素定位示例详解
Jul 23 #Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 #Python
You might like
用PHP编程语言开发动态WAP页面
2006/10/09 PHP
php操作MongoDB类实例
2015/06/17 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
Js注册协议倒计时的小例子
2013/06/24 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
Python @property装饰器原理解析
2020/01/22 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
新闻学专业个人求职信写作
2014/02/04 职场文书
校庆活动策划方案
2014/06/05 职场文书
生物工程专业求职信
2014/09/03 职场文书
中学教师个人总结
2015/02/10 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
《青山不老》教学反思
2016/02/22 职场文书
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
使用springMVC所需要的pom配置
2021/09/15 Java/Android
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫