LeetCode: 189.轮转数组

本篇目标了解,翻转数组的经典解法,

189. 轮转数组 - 力扣(LeetCode)

目录

基本方法概述:

1,翻转做法,推荐时O(n),空(1)

2,环状替换,极不推荐(思路好像,但官方的解释比较难理解,官方题解更像是在秀操作,)时O(n)空(1)

3,创建临时数组,拷贝完后,再拷贝回去,时O(n),空O(n);显现不出自身水平,尤其在掌握了翻转做法,这就太过时了

4,单个临时变量,来一遍一遍的循环重复,向右轮转的操作(如果K和数组本身较大,时间耗损的多),时O(n^2),空(1)太LOW了

翻转法的代码:


基本方法概述:

1,翻转做法,推荐时O(n),空(1)

2,环状替换,极不推荐(思路好像,但官方的解释比较难理解,官方题解更像是在秀操作,)时O(n)空(1)

环状替换的思路,主要思想是:一次性(一步到位,而且不会),排到,轮转k次的位置,

3,创建临时数组,拷贝完后,再拷贝回去,时O(n),空O(n);显现不出自身水平,尤其在掌握了翻转做法,这就太过时了
4,单个临时变量,来一遍一遍的循环重复,向右轮转的操作(如果K和数组本身较大,时间耗损的多),时O(n^2),空(1)太LOW了

翻转法的代码:

void rotate(int* nums, int numsSize, int k) {
    k = k % numsSize;//轮转numsSize*n+k次和轮转k次没有区别
    int tmp = 0;
    //数组翻转法,可以用函数来分装翻转的操作,会清晰一些,不过这里就没这么做了
    for(int i = 0; i < numsSize / 2; ++i){//翻转all
        tmp = nums[i];
        nums[i] = nums[numsSize - i - 1];
        nums[numsSize - i - 1] = tmp;
    }
    for(int i = 0; i < k / 2; ++i){//翻转前半段
        tmp = nums[i];
        nums[i] = nums[k - i - 1];
        nums[k - i - 1] = tmp;
    }
    for(int i = 0; i < (numsSize - k) / 2; ++i){//翻转后半段
        tmp = nums[k + i];
        nums[k + i] = nums[numsSize - 1 - i];
        nums[numsSize - 1 - i] = tmp;
    }
}

                        

每日一表情包:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/362644.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

喜讯 | 经纬恒润整车电子电气测试实验室通过一汽研发总院外部实验室资质认证!

近日&#xff0c;经纬恒润整车电子电气测试实验室成功通过中国一汽研发总院的资质评定&#xff0c;获得外部实验室认可证书。这是继经纬恒润测试实验室获得一汽智能网联开发院车载以太网测试资质认证之后的又一次认可&#xff0c;它将拓宽经纬恒润与红旗新能源及相关零部件供应…

windows pm2 执行 npm脚本或执行yarn脚本遇到的问题及解决方案

环境&#xff1a; 在windows上启动终端来运行一个项目&#xff1b;通过指令npm run start来启动&#xff0c;但是将终端一关&#xff0c;就无法访问了&#xff0c;所以想到用pm2来管理 1. 全局安装pm2 npm i pm2 -g2. 在项目根目录执行指令(大部分兄弟的错误使用方法) pm2 st…

docker私有库

1.registry私有仓库 拉取registry镜像 docker pull registry 修改docker配置文件并重启 vim /etc/docker/daemon.json {"insecure-registries": ["172.16.23.23:5000"], #添加&#xff0c;注意用逗号结尾"registry-mirrors": ["ht…

阿赵UE学习笔记——14、LOD

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的用法。这次看看虚幻引擎的Level Of Detail(LOD)的用法。 一、测试场景准备 用植物系统&#xff0c;在地形上面刷了好多草&#xff1a; 这个时候看一下网格&#xff0c;会发现网格比较多和密集。 …

免费AI写作网站,AI人工智能写作gpt+在线AI绘画midjourney国内版

大家可以通过收藏网页www.woka.chat 直接进行访问&#xff0c;也可通过关注新公众号实现微信端使用~ 注册赠送大量额度&#xff0c;可用于网站全部功能&#xff08;问答和绘画&#xff09;&#xff01;每天签到也可领取充足使用额度&#xff01; 废话不多说&#xff0c;我们现…

【android】 android->profile 查看内存泄露

目录 实例讲解 各字段解释 实例讲解 各字段解释 在 Android Studio 的 Profile 视图中&#xff0c;Arrange by Stack 用于对内存分配和释放事件进行堆栈排列&#xff0c;以便更好地了解内存使用情况。以下是表上各列的一般含义&#xff1a; 1. **Call Chart (调用图)**: …

Web中的转发与重定向

转发与重定向 一、转发和重定向的概念1.转发2.重定向 二、JavaWeb 中的转发和重定向三、SpringMVC 中的转发和重定向1.转发(1) 默认的方式(2) 完整的方式 2.重定向 四、总结 一、转发和重定向的概念 在 Web 应用中&#xff0c;转发和重定向都是用于将请求从一个页面传递到另一…

MIMIC-IV官方视图解析 - cardiac_marker心脏标记表

今天在学习官方衍生表mimiciv_derived.cardiac_marker心脏标记表时候发现了一些问题&#xff1a; 该表中troponin_t &#xff08;肌钙蛋白t&#xff09;的值结果都是空值null 或者 ___ &#xff08;由于去标识化&#xff09;&#xff0c; 这明显是不合理的 小编查看了该表的官…

提升小波的理解

本文简要介绍一下提升小波的计算过程和基本原理: 1、划分 假设有序列X, 将其奇数索引上的元素构成,Xo将其偶数索引上的元素构成,Xe之所以能文献中都用Xo和Xe划分,是因为 o来源于odd,奇数;e来源于even,偶数;举个例子: 有序列:X=[3,5,22,33,12,34,56,77,99,29] Xo…

乐鑫与 Elektor 杂志合作推出特刊,聚焦 AIoT 创新

在新一年的起始之际&#xff0c;我们很荣幸地与 Elektor 合作推出由乐鑫领衔编辑的杂志特刊。欢迎点此阅读电子版本。 Elektor 杂志作为国际电子工程和科技创新的重要平台&#xff0c;自 20 世纪 60 年代起&#xff0c;就引领着电子制造的发展潮流。如今&#xff0c;它已经发展…

服务端渲染

SSR简单来说就是页面上的内容是通过服务端渲染生成的&#xff0c;浏览器直接显示服务端返回的html就可以了。相比之前常用的SPA来说有很多的优点&#xff0c;如下图&#xff0c;但也有一些实际存在的问题&#xff0c;在实际应用中需要多方面权衡利弊。 SSR优势 SSR缺点&#xf…

THREE.JS动态场景开发实战【赛博朋克】

在本教程中&#xff0c;我们将探索如何创建类似 Three.js 的赛博朋克场景&#xff0c;灵感来自 Pipe 网站上的背景动画。 我们将指导你完成使用 Three.js 编码动态场景的过程&#xff0c;包括后处理效果和动态光照&#xff0c;所有这些都不需要任何着色器专业知识。 我用这个场…

【网络】:网络套接字(TCP)

网络套接字&#xff08;TCP&#xff09; 一.编写TCP服务器二.编写Tcp客户端三.多进程四.多线程版本五.线程池版完整源代码六.使用示例 一.编写TCP服务器 1.先搭一个架子 2.创建sockfd domain参数依然是AF_INET(因为是IPV4) type方式选择SOCK_STREAM&#xff08;提供可靠的连接…

优思学院|如何评价质量经理这个角色?

简单来说&#xff0c;公司的成败已经取决于质量的水准。质量是任何公司的重要组成部分&#xff0c;无法保证商品质量的公司将很快失去信誉与消费者的认可&#xff0c;最终导致销售额直线下降。 所以&#xff0c;质量经理的意义首先体现在他们对于质量控制体系的建立和维护上。…

辽宁链家新房数据采集与可视化实现

摘 要 网络爬虫也叫做网络机器人&#xff0c;是一种按照一定的规则&#xff0c;自动地抓取网络信息&#xff0c;进行数据信息的采集与整理的程序或者脚本。随着海量数据的出现&#xff0c;如何快速有效的获取到我们想要的数据成为难题。以房源信息为例&#xff0c;该文使用Pyt…

MySQL之索引分类,语法以及SQL性能分析(慢日志,profile,explain)

索引分类 分类含义特定关键字主键索引针对于表中主键创建的索引默认自动创建&#xff0c;只能有一个PRIMARY唯一索引避免同一个表中某数据列中的值重复可以有多个UNIQUE常规索引快速定位特定数据可以有多个全文索引全文索引查找的文本中的关键字&#xff0c;而不是比较索引中的…

Java正则表达式之Pattern和Matcher

目录 前言一、Pattern和Matcher的简单使用二、Pattern详解2.1 Pattern 常用方法2.1.1 compile(String regex)2.1.2 matches(String regex, CharSequence input)2.1.3 split(CharSequence input)2.1.4 pattern()2.1.5 matcher(CharSequence input) 三、Matcher详解3.1 Matcher 常…

猫头虎博主第10期赠书活动:《写给大家看的Midjourney设计书》

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通Golang》…

基于Spark+Springboot的电商用户行为分析系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌ 主要内容&#xff1a;SpringBoot、Vue、SSM、HLM…

中科星图——2020年全球30米地表覆盖精细分类产品V1.0(29个地表覆盖类型)

数据名称&#xff1a; 2020年全球30米地表覆盖精细分类产品V1.0 GLC_FCS30 长时序 地表覆盖 动态监测 全球 数据来源&#xff1a; 中国科学院空天信息创新研究院 时空范围&#xff1a; 2015-2020年 空间范围&#xff1a; 全球 数据简介&#xff1a; 地表覆盖分布…