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测试驱动开发实例
Oct 08 Python
Python中死锁的形成示例及死锁情况的防止
Jun 14 Python
python常见的格式化输出小结
Dec 15 Python
Python 实现选择排序的算法步骤
Apr 22 Python
基于Python的PIL库学习详解
May 10 Python
详解python实现小波变换的一个简单例子
Jul 18 Python
Python中的延迟绑定原理详解
Oct 11 Python
最小二乘法及其python实现详解
Feb 24 Python
Python中的Cookie模块如何使用
Jun 04 Python
Python3读取和写入excel表格数据的示例代码
Jun 09 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 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
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
js 小数取整的函数
2010/05/10 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
判定是否原生方法的JS代码
2013/11/12 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
Python MD5文件生成码
2009/01/12 Python
python去除字符串中的换行符
2017/10/11 Python
python OpenCV学习笔记直方图反向投影的实现
2018/02/07 Python
Python输入二维数组方法
2018/04/13 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
python实现键盘控制鼠标移动
2020/11/27 Python
django的settings中设置中文支持的实现
2019/04/28 Python
Python 200行代码实现一个滑动验证码过程详解
2019/07/11 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
Python项目跨域问题解决方案
2020/06/22 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
播音主持女孩的自我评价分享
2013/11/20 职场文书
阳光体育活动总结
2014/04/30 职场文书
英语教师求职信
2014/06/16 职场文书
后进生评语大全
2015/01/04 职场文书
文明礼仪倡议书
2015/04/28 职场文书
通过Python把学姐照片做成拼图游戏
2022/02/15 Python