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程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
使用py2exe在Windows下将Python程序转为exe文件
Mar 04 Python
Python元组及文件核心对象类型详解
Feb 11 Python
PyQt5每天必学之事件与信号
Apr 20 Python
Python之pandas读写文件乱码的解决方法
Apr 20 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
Python tkinter和exe打包的方法
Feb 05 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
Python 随机按键模拟2小时
Dec 30 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
Smarty中调用FCKeditor的方法
2014/10/27 PHP
php生成zip文件类实例
2015/04/07 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP使用file_get_contents发送http请求功能简单示例
2018/04/29 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
Vue+jquery实现表格指定列的文字收缩的示例代码
2018/01/09 jQuery
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
JS实现烟花爆炸效果
2020/03/10 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
Python中优化NumPy包使用性能的教程
2015/04/23 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
Django连接数据库并实现读写分离过程解析
2019/11/13 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
物流专业专科生职业生涯规划书
2014/09/14 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
2014年向国旗敬礼活动方案
2014/09/27 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
安装pytorch时报sslerror错误的解决方案
2021/05/17 Python