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中for语句简单遍历数据的方法
May 07 Python
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
CentOS6.5设置Django开发环境
Oct 13 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
tensorflow实现加载mnist数据集
Sep 08 Python
python实现可逆简单的加密算法
Mar 22 Python
Django-rest-framework中过滤器的定制实例
Apr 01 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
Python3基于plotly模块保存图片表格
Aug 03 Python
python多线程爬取西刺代理的示例代码
Jan 30 Python
yolov5返回坐标的方法实例
Mar 17 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 图片上传实现代码 带详细注释
2010/04/29 PHP
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
Angular模板表单校验方法详解
2017/08/11 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
Python_LDA实现方法详解
2017/10/25 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python tkinter canvas使用实例
2019/11/04 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
GUESS Factory加拿大:牛仔裤、服装及配饰
2019/09/20 全球购物
普师专业个人自荐信范文
2013/11/26 职场文书
历史系自荐信范文
2013/12/24 职场文书
经销商年会策划方案
2014/05/29 职场文书
暑期学习心得体会
2014/09/02 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
护士年终个人总结
2015/02/13 职场文书
刑事起诉书范文
2015/05/19 职场文书
新闻稿格式范文
2015/07/18 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL