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计算对角线有理函数插值的方法
May 07 Python
Python进阶-函数默认参数(详解)
May 18 Python
查看TensorFlow checkpoint文件中的变量名和对应值方法
Jun 14 Python
Python设计模式之原型模式实例详解
Jan 18 Python
Django工程的分层结构详解
Jul 18 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
jupyter notebook 的工作空间设置操作
Apr 20 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
python 爬取小说并下载的示例
Dec 07 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 Python
Python Django ORM连表正反操作技巧
Jun 13 Python
pd.drop_duplicates删除重复行的方法实现
Jun 16 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
phpinfo 系统查看参数函数代码
2009/06/05 PHP
JpGraph php柱状图使用介绍
2011/08/23 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
深入分析PHP设计模式
2020/06/15 PHP
javascript 按回车键相应按钮提交事件
2009/11/02 Javascript
一款Jquery 分页插件的改造方法(服务器端分页)
2011/07/11 Javascript
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
JS判断是否手机或pad访问实现方法
2016/12/09 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
ECMAScript6--解构
2017/03/30 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
Python解析xml中dom元素的方法
2015/03/12 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
Python实现井字棋小游戏
2020/03/09 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
平面设计自荐信
2013/10/07 职场文书
分公司经理岗位职责
2013/11/11 职场文书
应届本科生推荐信范文
2013/12/25 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis