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接收多播数据的代码
Mar 01 Python
总结用Pdb库调试Python的方式及常用的命令
Aug 18 Python
Python使用Matplotlib实现雨点图动画效果的方法
Dec 23 Python
Django项目中包含多个应用时对url的配置方法
May 30 Python
python使用requests模块实现爬取电影天堂最新电影信息
Apr 03 Python
python字典改变value值方法总结
Jun 21 Python
10款最好的Python开发编辑器
Jul 03 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
Django与pyecharts结合的实例代码
May 13 Python
使用OpenCV校准鱼眼镜头的方法
Nov 26 Python
Python运算符+与+=的方法实例
Feb 18 Python
快速一键生成Python爬虫请求头
Mar 04 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下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
详解php中 === 的使用
2016/10/24 PHP
Yii2框架自定义类统一处理url操作示例
2019/05/25 PHP
jquery多浏览器捕捉回车事件代码
2010/06/22 Javascript
jQuery阻止冒泡和HTML默认操作
2010/11/17 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
javascript hashtable 修正版 下载
2010/12/30 Javascript
jquery中ready()函数执行的时机和window的load事件比较
2015/06/22 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
js实现滚动条自动滚动
2020/12/13 Javascript
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
在Python中增加和插入元素的示例
2018/11/01 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
Python适配器模式代码实现解析
2019/08/02 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
Python如何访问字符串中的值
2020/02/09 Python
python mock测试的示例
2020/10/19 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
美国婴儿用品及配件购买网站:Munchkin
2019/04/03 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
军训心得体会
2013/12/31 职场文书
体育运动口号
2014/06/09 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
商铺租房协议书范本
2014/12/04 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
我是特种兵观后感
2015/06/11 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python