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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
python中的__slots__使用示例
Feb 26 Python
Python迭代器和生成器介绍
Mar 06 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
Jul 20 Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 Python
详解Python3定时器任务代码
Sep 23 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
Flask和pyecharts实现动态数据可视化
Feb 26 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
python使用Word2Vec进行情感分析解析
Jul 31 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
jquery 表单取值常用代码
2009/12/22 Javascript
javaScript call 函数的用法说明
2010/04/09 Javascript
javascript preload&amp;lazy load
2010/05/13 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
2018/12/21 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
js实现简单的点名器随机色实例代码
2020/09/20 Javascript
Python编程之string相关操作实例详解
2017/07/22 Python
Django REST framework 分页的实现代码
2019/06/19 Python
详解python中的异常和文件读写
2021/01/03 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
建筑毕业生自我鉴定
2013/10/18 职场文书
校长岗位职责
2013/11/26 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
幼儿园新生开学寄语
2015/05/27 职场文书
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android