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中函数的可变参数
Sep 02 Python
python 容器总结整理
Apr 04 Python
简单了解OpenCV是个什么东西
Nov 10 Python
flask入门之表单的实现
Jul 18 Python
Python3.5 Pandas模块缺失值处理和层次索引实例详解
Apr 23 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
Python-opencv 双线性插值实例
Jan 17 Python
python数据爬下来保存的位置
Feb 17 Python
Python线程threading模块用法详解
Feb 26 Python
从np.random.normal()到正态分布的拟合操作
Jun 02 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
Php中文件下载功能实现超详细流程分析
2012/06/13 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
用jquery实现等比例缩放图片效果插件
2010/07/24 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
Vue2.x中的父组件传递数据至子组件的方法
2017/05/01 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
Python中asyncore的用法实例
2014/09/29 Python
Python内置函数dir详解
2015/04/14 Python
解决Python出现_warn_unsafe_extraction问题的方法
2016/03/24 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
2020/04/07 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
css3打造一款漂亮的卡哇伊按钮
2013/03/20 HTML / CSS
打架检讨书300字
2014/02/02 职场文书
销售冠军获奖感言
2014/02/03 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
数据库连接池
2021/04/06 MySQL
JavaScript文档对象模型DOM
2021/11/20 Javascript
Golang bufio详细讲解
2022/04/21 Golang