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中循环语句while用法实例
May 16 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
Python文本统计功能之西游记用字统计操作示例
May 07 Python
浅析Python四种数据类型
Sep 26 Python
pandas 透视表中文字段排序方法
Nov 16 Python
Pycharm设置utf-8自动显示方法
Jan 17 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
Aug 18 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
如何基于Python实现word文档重新排版
Sep 29 Python
python爬虫之selenium库的安装及使用教程
May 23 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的ASP防火墙
2006/10/09 PHP
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
php防盗链的常用方法小结
2010/07/02 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
2016/03/21 PHP
JavaScript 事件查询综合
2009/07/13 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
jquery.post用法关于type设置问题补充
2014/01/03 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
浅谈js函数三种定义方式 &amp; 四种调用方式 &amp; 调用顺序
2017/02/19 Javascript
JS匹配日期和时间的正则表达式示例
2017/05/12 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
python实现单张图像拼接与批量图片拼接
2020/03/23 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
详解Python中第三方库Faker
2020/09/25 Python
护士自我介绍信
2014/01/13 职场文书
个人合作协议书范本
2014/04/18 职场文书
单位介绍信格式
2015/01/31 职场文书
电气工程师岗位职责
2015/02/12 职场文书
2015年安全月活动总结
2015/03/26 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python