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实现一个简单的MySQL类
Jan 07 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
Jun 24 Python
机器学习python实战之决策树
Nov 01 Python
Python 元类实例解析
Apr 04 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
python实现飞船大战
Apr 24 Python
如何使用python写截屏小工具
Sep 29 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 Python
Python语言规范之Pylint的详细用法
Jun 24 Python
基于PyQt5制作一个群发邮件工具
Apr 08 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
phpfans留言版用到的install.php
2007/01/04 PHP
介绍php设计模式中的工厂模式
2008/06/12 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
vue ssr 指南详读
2018/06/29 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
在vue中封装的弹窗组件使用队列模式实现方法
2020/07/23 Javascript
python基础教程之常用运算符
2014/08/29 Python
python计算N天之后日期的方法
2015/03/31 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
分析Python读取文件时的路径问题
2018/02/11 Python
Python实现的远程登录windows系统功能示例
2018/06/21 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
对python中的os.getpid()和os.fork()函数详解
2019/08/08 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
python可视化实现KNN算法
2019/10/16 Python
基于python实现学生信息管理系统
2019/11/22 Python
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
高二生物教学反思
2014/01/27 职场文书
行政主管职责范本
2014/03/07 职场文书
党员公开承诺书
2014/03/25 职场文书
安全承诺书范文
2014/03/26 职场文书
大学生村官承诺书
2014/03/28 职场文书
捐款倡议书
2014/04/14 职场文书
学校就业推荐信范文
2014/05/19 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
工作转正自我鉴定范文
2019/06/21 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
一文解答什么是MySQL的回表
2022/08/05 MySQL