leetcode-189. 旋转数组【数组】

RTL8211F千兆PHY原理图与PCB设计:从手册到量产的完整指南 在工业网关、边缘计算和FPGA/CPU以太网扩展设计中,千兆PHY芯片的稳定运行取决于外围电路的精细设计。RTL8211F(I)作为应用广泛的物理层收发器,其原理图设计涉及电源域划分、时钟与复位时序、RGMII/ MDIO接口匹配以及MDI差分网络等多个环节。正确理解数据手册的阅读顺序,掌握100Ω差分阻抗控制、等长约束和EMI布局技巧,是保证链路可靠性和信号完整性的关键。本文从芯片选型与数据手册解析切入,系统梳理从电源去耦到PCB布局布线的工程实践要点,帮助工程师规避Link不稳定、MDIO读取失败、吞吐 阅读详情

目录

题目

思路


题目

旋转数组

给定一个数组,将数组中的元素向右移动 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 <= 2 * 104
-231 <= nums[i] <= 231 - 1
0 <= k <= 105

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/rotate-array


思路

可以先将所有元素翻转,这样尾部的k mod n (取模/取余)个元素就被移至数组头部,然后我们再翻转 [0, k mod n-1][0,k mod n−1] 区间的元素和 [k mod n, n-1][k mod n ,n−1] 区间的元素即能得到最后的答案。

我们以 n=7,k=3为例进行如下展示:

 完整代码

class Solution {
    public void rotate(int[] nums, int k) {
        k %= nums.length;
        reverse(nums, 0, nums.length - 1);//翻转所有元素
        reverse(nums, 0, k - 1);//翻转 [0, k mod n - 1] 区间的元素
        reverse(nums, k, nums.length - 1);//翻转 [k mod n, n - 1]区间的元素
    }

    public void reverse(int[] nums, int start, int end) {
         //遍历依次首尾交换
        while (start < end) {
            int temp = nums[start];
            nums[start] = nums[end];
            nums[end] = temp;
            start += 1;
            end -= 1;
        }
    }
}

复杂度分析

时间复杂度:O(n),其中 n为数组的长度。每个元素被翻转两次,一共 n个元素,因此总时间复杂度为 O(2n)=O(n)。

空间复杂度:O(1)。

【ArcGIS Pro微课1000例】0023:ArcGIS Pro 3.0中打开GeoPackage数据库(.gpkg) 本文讲解ArcGIS Pro 3.0中打开GeoPackage数据库(.gpkg)的两种方法。 阅读详情

相关推荐

别再只盯着GPS了!手把手教你用Python仿真UWB定位,30厘米精度是怎么算出来的?

本文详细解析了UWB(超宽带)室内定位技术的原理与实现,通过Python代码演示如何从三边测量法到实现30厘米精度的定位。文章涵盖了UWB的核心数学模型、Python仿真环境搭建、误差分析及优化策略,为开发者提供了实用的技术指南和应用场景。

weixin_26873711的博客 252

算法基础 双向链表 旋转数组

给定一个数组,将数组中的元素向右移动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 步: ...

weixin_45244707的博客 179

IROS 2025机器人技术解析:从诡异设计到硬核应用

机器人技术正从传统的结构化环境应用,迈向复杂非结构化场景的深度交互。其核心原理在于通过仿生设计、多模态感知与智能控制算法,赋予机器人类似生物的适应性与交互能力。这一技术演进的价值在于突破传统机器人在极端环境、精密操作和自然交互中的瓶颈。例如,结合深度强化学习的全身动力学控制,使机器人能在废墟、管道等复杂地形中自主导航;而软体机器人技术则通过材料变形实现安全、柔顺的抓取操作。这些技术最终服务于极端环境巡检、精密装配和高端陪护等刚性应用场景,推动机器人从功能实现迈向与环境、人进行深度、智能交互的新阶段。

weixin_34006468的博客 449

数组转链表,链表转数组

一、数组转链表: 整形 Integer[]a = {2,5,3,1,10,4,443,787,7684,46,74,4-424,4343,4,-4,34,54}; List s = Arrays.asList(a); 浮点型 Double[]a = {2d,5d,3d,1d,10d,4d,443d,787d,7684d,46d,74d,-424d,4343d,4d,-4d,34d,54d}; Li...

qq_40131465的博客 5744

MES系统领料申请、出库、确认到料各环节的处理

在WMS和MES系统协同的车间管理中,核心分工原则为:MES负责生产需求发起(领料申请)和结果确认(到料验收),WMS执行库存管理和物流作业。具体流程为:1)MES根据生产需求生成领料单推送至WMS;2)WMS完成拣货出库并调度AGV配送;3)车间在MES确认到料后解锁生产工序。系统边界严格限定:MES不参与库存/库位管理,WMS不干预生产决策。特殊场景(紧急补料、缺料异常等)通过标准化接口流程处理,确保生产与物流高效协同的同时保持账实一致。

做有价值的事,积累有价值的笔记! 585

小曾WRF自学日记(3)渐入佳境 ——WRF实例-数据下载与WPS前处理

ww

weixin_46297571的博客 1480

[Python]数据结构--链表

[Python]数据结构–链表 ‘Festinatione facit vastum’ 链表的概念 单链表的实现 循环单链表的实现 链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另

Festinatione facit vastum 834

【STM32G474实战】RS485通信的DMA优化策略与性能对比

本文深入探讨了在STM32G474微控制器上优化RS485通信的DMA策略。通过对比轮询、中断和DMA三种数据传输方式的代码实现与性能,揭示了DMA在解放CPU、降低占用率方面的巨大优势。文章提供了详细的DMA配置指南、高级应用技巧(如结合空闲中断)以及一个高可靠通信框架的实战思路,旨在帮助开发者构建高效、实时的工业控制系统。

weixin_29268331的博客 303

数据结构之双向链表(数组模拟)

const int MAXN = 100005; int value[MAXN]; //保存链表数据 int pre[MAXN]; //指向上一个元素的指针 int ne[MAXN]; //指向下一个元素的指针 int index; //当前元素保存位置 //初始化 void init() { //第0个表示head指针指向链表开始位置 ...

i_meteor_shower的博客 924

2022年电赛E题声源定位跟踪系统

电赛声源定位

qq_53357019的博客 2万+

uniapp(全端兼容) - 超详细接入百度统计功能,给uniapp全平台各端项目引入添加百度统计的插件统计流量详细的步骤教程(提供最新的百度统计源代码,详细的示例代码复制粘贴即可快速搞定!)

uniapp h5 app 使用加入接入百度统计,uniapp百度统计,uniapp详细引入百度统计的教程,uniapp接入百度统计,uniapp如何实现加入百度的统计代码,uniapp怎么植入百度统计详细教程,uniapp如何对接百度统计,uniapp百度统计不生效怎么办,uniapp使用百度统计不生效常见问题,uniapp引入百度统计后没有生效,uniapp h5网页接入百度统计代码后没有统计无效,uniapp最新接入使用百度统计功能,uniapp增加百度统计代码,uniapp app如何接入百度统计,

✅ 精选推荐文章 1万+

双向链表的数组表示

链表大家都熟悉, 或用数组或用指针表示, 思想都很简单, 大家都很明白 双向链表, 这个大家也熟悉, 有没有想过用数组如何表示双向链表, 以及如 插入和删除其中一个元素, 这里简单一点, int类型的数组吧 下面有个题目, 本来是想写怎么解这个问题的, 偷懒了, 留给大家了, 我只点下。 ===================================================

心之所想。。。 878

宽压 DC⇌DC 也能“随心所欲”——全桥 LLC 混合控制硬核拆解

硬件派 vs. 软件派:多电平是“器件堆砌”,混合控制是“算法魔改”。预算紧 → 先搞软件。仿真别嫌烦:PLECS 把两条曲线扫透,切换点、死区、φ 都调到波形平滑再上板。温升留 20 ℃ 余量:车规≥125 ℃,实验室测 105 ℃ 就算危险,别玩极限。

weixin_43199439的博客 926

力扣【LeetCode】—— 189. 旋转数组【java】

题目链接:https://leetcode-cn.com/problems/rotate-array/ 题目:  给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例:  [1,2,3,4,5,6,7] 和 k = 3 结果:  [5,6,7,1,2,3,4] 说明:  尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。  要求使用空间复杂度为 O(1) 的 原地 算法。 方案一:暴力 该解决方案虽然满足题意中的空间复杂度条件,但是时间复杂度为O(k*n),pub

眉头的骰 871

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

力扣189.旋转数组

力扣189.旋转数组解法一解法二解法三 三种解法,解法一很容易想到,后两种解法比较巧妙,在这里记录一下。 解法一 每次将数组每一位向后挪动一位,挪动k%nums.length次(k%nums.length是因为挪动nums.length的倍数次相当于没有挪动) //时间复杂度:O(kn) //空间复杂度:O(1) class Solution { public void rotate(in...

不想秃头的女ITer的博客 746

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

力扣189.旋转数组 C语言

力扣189 旋转数组 个人感觉挺不错的一道题,而且大公司面试也会出现这样的题 题目分析: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [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...

weixin_44347111的博客 574

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Leetcode 189. 旋转数组 C++

Leetcode 189. 旋转数组 题目 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 测试样例 示例 1: 输入: [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: 输入: [-1,-100,3,99] 和 k = 2 输出: [3,99,-1,-100] 解释:

weixin_43750513的博客 288

Leetcode 189. 旋转数组

Leetcode 189. 旋转数组 题目描述 给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。 示例 1: 输入: [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] ...

qq_28640193的博客 355

Leetcode189. 旋转数组

Leetcode189. 旋转数组 题目: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [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] 题解: 方案...

会流泪de鱼的博客 302

LeetCode第189题_旋转数组

给你一个数组,将数组中的元素向右轮转k个位置,其中k是非负数。

qq_40263592的博客 1721

Leetcode189--旋转数组

Leetcode189–旋转数组(多种方法解题,python) 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 编程语言:python 作者:黑暗主宰 邮箱:shengzhanhe@gmail.com 文章目录Leetcode189--旋转数组题目描述解题思路 Leetcode189–旋转数组 题目描述 原题链接: ​ https://leetcode-cn.com/pr...

EngineerHe的博客 1141

LeetCode--189 旋转数组

题目 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 (说明: 尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。 要求使用空间复杂度为 O(1) 的原地算法。) 示例 输入: [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,...

Courage-Hu的专栏 173

LeetCode 力扣 189. 旋转数组 字符串

大家觉得写还可以,可以点赞、收藏、关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录189. 旋转数组示例 1:示例 2:说明:分析提交结果 189. 旋转数组 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [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

motongxue的博客 248

力扣leetcode 189. 旋转数组 java

class Solution { public void reverse(int[] arr, int i, int j) { while(i < j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++; ...

izhxxx的博客 245

leetcode 189.旋转数组

leetcode 189.旋转数组 题目描述 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [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:...

EngineerHe的博客 605

189. 旋转数组——来源力扣 (LeetCode)

给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。 示例 1: 输入: [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] 方法 1:暴力(例1就是旋转三次) 最简单的方法是...

方法属性类,一个都不会 195
上一篇: leetcode-61. 旋转链表【链表】
下一篇: leetcode-09. 用两个栈实现队【栈/队列】
Crazy Code Farmer
博客等级 码龄10年 315粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值