小妙招带你解决轮转数组OJ题

ANSYS MAXWELL内置式永磁同步电机(IPMSM)转矩最大时输入电流相位的确定 1.在转子转速为零时看一个周期内的转矩变化 阅读详情

先上题目
在这里插入图片描述

逆置

如图所示,我们该怎么解决这一类问题呢?核心思想就是:逆置!!
接下来讲讲怎么操作
假如我们是数组是 1 2 3 4 5 6,我们要进行进行你指3个元素。即逆置后数组就变成了4 5 6 1 2 3

具体有三个步骤
1.把前三个元素进行逆置,也就是把1 2 3进行逆置,逆置完变成了3 2 1
2.把后三个元素进行逆置,也就是把4 5 6进行逆置,逆置完变成了6 5 4
3.把整个数组元素进行逆置。基于以上的基础,目前的数组变成了3 2 1 6 5 4,把整个数组逆置完就变成了
4 5 6 1 2 3

接下来,博主为大家讲解逆置函数,大家只要套这个模板就好了

逆置就是最左边和最右边的交换,倒数第二和正数第二进行交换,一次类推。所以我们定义left和right变量,让left指向最左端,right指向最右端,然后每次都是left的值和right的值进行交换(这里需要定义中间变量)(为什么需要定义中间变量,后面我会举例子说明)然后再让left++,同时right–,是不是很妙?这样就可以让整数第二个和倒数第二个元素交换。

void reverse(int * nums,int left,int right)
{
   while(left<right)//left肯定不能超过right,大于或等于就得跳出循环
   {
       int tmp = nums[left];
       nums[right] = tmp;
       nums[left] = nums[right];
       right--;
       left++;
   }
}

逆置为什么要定义中间变量?

就好比你面前就两杯水。a杯子里面装着果汁,b杯子里面装着酒。那么我们如何做到让a杯子里面装着酒,b杯子里面装着果汁呢?你总不能直接让a杯子里的东西直接倒到b杯子里吧?所以,我们需要拿来一个空杯子(也就是我们代码中的中间变量tmp),先让a杯子里的果汁倒入空杯子中,这样a杯子里面就是空的了,这样再让b杯子里的酒倒入到a杯子中,这样a被里面装的就是酒了,再把空杯子里面先前的果汁倒入到b杯子里,这样b杯子里面装的就是果汁了。
这,就实现了互换!!!

代码示例

假设我们现在的数组为nums[6] = {1,2,3,4,5,6},轮转的个数为k=3次,即轮转的结果为{4 ,5, 6,1,2,3};
上代码

void reverse(int *nums,int left,int right)
{
    while(left<right)
    {
       int tmp = nums[left];
       nums[right] = tmp;
       nums[left] = nums[right];
       left++;
       right--;
    }
}
void rota(int *nums,int k,int numsSize)//numsSize为元素个数
{
    //现在需要定义逆置函数,即上方的reverse
    reverse(0,numsSize-k);//先逆置前k个元素
    reverse(k,numsSize-1);//后逆置后numsSize-k个元素
    reverse(0,numsSize-1);//逆置整个数组
  
}

自此,我们的轮转数组操作就已经圆满完成了。

RK3588视频转码实战:如何用FFmpeg+MPP实现16路1080P硬解压(附完整命令) 本文详细介绍了如何在RK3588处理器上使用FFmpeg和MPP框架实现16路1080P视频的硬件加速转码。通过解析RK3588的视频处理架构、环境搭建步骤和实战配置,提供了完整的命令示例和性能调优建议,帮助开发者高效处理多路视频转码任务。 阅读详情

相关推荐

OpenClaw 完整命令文档(2026.3.13 最新版)

本文档为OpenClaw 2026.3.13通用版使用指南,包含核心命令大全。主要内容包括:1)基础安装/升级/卸载命令;2)ClawHub扩展安装命令(支持飞书/钉钉/企微等平台连接);3)Skills技能安装命令(实现聊天/搜索/记忆等功能);4)飞书机器人授权与配对命令;5)启动运行与配置检查命令;6)工作区与记忆管理命令;7)插件安全设置命令;8)调试日志命令;9)飞书机器人一键部署简化流程。文档特别强调飞书机器人部署需feishu扩展+对应技能+用户授权的完整配置,所有命令均需在终端执行,安装后需

MKliudan的专栏 1294

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 256

从D3 00到FF FF:手把手解析RTCM3.2协议帧结构(附Python解析代码)

本文深入解析RTCM3.2协议帧结构,从同步头标识到CRC校验算法,详细讲解如何通过Python代码实现二进制数据解析。文章包含完整的RTCM3.2解析器实现,涵盖消息类型解码、CRC校验等关键步骤,并附赠特定消息类型(如1005型基准站坐标)的解析示例,帮助开发者快速掌握GNSS差分数据传输协议的核心技术。

weixin_42550052的博客 353

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 324

保姆级教程:手把手教你用KITTI数据集跑通LIO-SAM(附EVO评估全流程)

本文提供了一份详细的KITTI数据集LIO-SAM实现教程,涵盖数据准备、算法适配和EVO评估全流程。通过解析KITTI数据集特性、解决LIO-SAM适配问题,并利用EVO工具进行精度评估,帮助读者快速掌握激光惯性SLAM技术。特别针对KITTI数据与LIO-SAM的兼容性问题提供了实用解决方案。

weixin_28737603的博客 303

别再手动巡检了!vRealize Operations Manager 8.x 自动化报告配置全攻略(附模板下载)

本文详细介绍了如何利用vRealize Operations Manager 8.x实现自动化巡检报告配置,大幅提升虚拟化运维效率。通过模板定制、智能调度和自动分发等功能,帮助运维团队告别手动生成报告的繁琐工作,实现90%以上的时间节省。文章还提供了实用的配置技巧和最佳实践,助力企业构建高效的自动化报告系统。

weixin_33806859的博客 298

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 303

XCKU060光纤卡学习资料保存:基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡

基于kintex UltraScale XCKU060的双路QSFP+光纤PCIe 卡 一、板卡概述 本板卡系我司自主研发,基于XilinxUltraScaleKintex系列FPGAXCKU060-FFVA1156-2-I架构,支持PCIEGen3x8模式的高速信号处理板卡,搭配两路40GQSFP+接口,两组64-bitDDR4,每组容量8Gbyte,可稳定运行在2400MT/s。板卡具有自控上电顺序,BP...

3075

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 598

MATLAB新手必看:5分钟搞定直流无刷电机Simulink仿真(附完整模型下载)

本文为MATLAB新手提供直流无刷电机Simulink仿真的快速入门指南,涵盖从环境配置到速度控制闭环实现的完整流程。通过详细的模块选择和参数设置说明,帮助读者5分钟内搭建基础仿真模型,并附赠完整模型下载,助力快速掌握电机控制仿真技术。

efc123456的博客 984

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 142

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

算法日常・每日刷题--<动态规划>42

本题为“不相交的线”,与最长公共子序列问题相似。使用动态规划求解:定义 dp[i][j] 表示 nums1[0:i] 与 nums2[0:j] 的最大不相交连线数。若元素相等,则继承左上值加1;否则取上方或左方最大值。最终返回 dp[m][n],即两数组的最大不相交连线数。时间复杂度 O(mn),空间复杂度 O(mn)。

2503_92261635的博客 23

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

408 算法 06|堆与 Top-K:最小的 10 个数,到底该用数组还是堆

2022(42) 找 100 万个数里最小的 10 个,官方给了"10 元素有序数组"和"大根堆"两种答案。我把两种都实现并数了比较次数:k=10 时两者几乎打平,k=10000 时堆少 111 倍。另附 2021(42) 计数排序的比较次数与稳定性实测。

m0_56226131的博客 358

牛客周赛165C题(前后缀性质,递推,排序,枚举)

题目大意:给定长度为 `n` 的数组,选择 `k ∈ [1,n]`,将前 `k` 个元素整体翻转,后面的元素不变。要求操作后的整个数组非递减,统计满足条件的 `k` 的数量。题目链接:https://ac.nowcoder.com/acm/contest/141721/C。时间复杂度:O(nlogn)

2501_94316951的博客 172

408 算法 04|主元素与三元组最小距离:两种“扫描时做决定“的思路

2013(41) 的主元素用摩尔投票一遍选出候选,但真正的考点是"选完必须验票";2020(41) 的三元组最小距离,三指针每次只挪最小的那个,靠的是 D=2×(max−min) 这个恒等式。两套完整 C 代码加真实输出,附官方评分档位表。

m0_56226131的博客 416

【数据结构-3】算法美学之降复杂度

在while循环的循环体内,首先用临时变量保存最后一个位置的数据,再通过for循环把所有元素往后移动一位,最后把tmp中保存的值放到下标为0的位置上去。方法二的思路是:创建新数组,让原数组中后k个数据移动到新数组中前面的位置,让原数组中前numsSize-k个数据移动到新数组中后面的位置,这。这段代码的思路是:三次逆置,第一次逆置前numsSize-k个数据,第二次逆置后k个数据,最后整体逆置。这篇博文分享一道解法不一的算法题,求解过程的目的在于降低算法的时间复杂度,题源力扣。,属于空间换时间的操作。

a bit 89

算法61,判定是否为字符重排

两字符串能互为重排 ⇔。

sheshibenniaodan的博客 220

算法日常・每日刷题--<动态规划>32

给定严格递增的正整数数组,求最长斐波那契子序列长度。使用二维DP,dp[i][j]表示以arr[i]、arr[j]为最后两项的序列长度,初始化均为2。通过哈希表快速查找前一项target = arr[j] - arr[i],若存在且下标小于i,则状态转移:dp[i][j] = dp[k][i] + 1。遍历更新全局最大长度,最终若结果小于3则返回0。时间复杂度O(n²),空间复杂度O(n²)。

2503_92261635的博客 180

【前缀和+复合离散化】题解:双色矩形(two)_数据结构_算法优化_预处理_二维前缀和_STL_C++算法竞赛

给定一个 $n \times n$ 的黑白棋盘,初始按 $i+j$ 奇偶染色,经 $k$ 个格子颜色翻转后,求子矩形中黑白格子数差的绝对值最大值。由于 $n$ 可达 $10^9$,但 $k \leq 50$,可离散化关键点。枚举所有由修改点构成的矩形及其四边向外扩展(共 $16$ 种扩展方式),利用二维前缀和快速计算变化量,结合奇偶性判断多出的格子颜色,最终取最大绝对差。时间复杂度为 $O(k^4)$,在 $k \leq 50$ 下可行。

YLCHUP的博客 183

算法札记:几何分布在算法题UVA1262的运用

集卡问题求解核心:将集齐n种优惠券的过程分为n个阶段,每个阶段期望购买次数为 $ \frac{n}{k} $(k为剩余种类数),总期望为 $ n \cdot H_n $(调和数)。通过自洽方程推导单阶段期望,无需几何分布或无穷级数,逻辑清晰且适用于大一水平。例如,n=5时期望约11.42,非5。题目要求以带分数形式输出精确结果,算法上需累加分数并化简。

Keven_11的博客 368

SSL证书选RSA还是ECDSA:公钥算法、CA签名与兼容性怎么核对

申请SSL证书时,RSA和ECDSA该怎么选?先分清站点公钥算法、CA签名算法和TLS实际兼容性,再用隔离OpenSSL实验读取两类材料,核对申请、续期和部署交接,避免只看Signature Algorithm就选错。

谁呀!的博客 401

考拉兹猜想 - 7

本文通过引入虚数单位重构Collatz猜想的迭代逻辑,指出偶数减半与奇数“乘3加1”的过程在虚数坐标下等价于归结操作。关键在于:乘3加1使奇数跃升至偶数,随后持续减半,而虚数单位代表“无限减1”,实现无限向有限的转化。无论初始值如何,减半始终主导,最终归结为4-2-1循环。该视角消解了正向思维中的速度竞争疑虑,证明归结是必然结果。

杨铸人的博客 48

贪心题目:可以到达的最远建筑

为了到达尽可能远的建筑物,在将砖块替换成梯子时,应将高度差最大位置的砖块替换成梯子,此时剩余的砖块数量最多,如果将高度差较小位置的砖块替换成梯子,则剩余的砖块数量较少,能到达的最远建筑物下标不可能更大。开始向后面的建筑物移动,移动过程中维护优先队列存储正高度差,优先队列的队首元素是最大元素,每次遇到正高度差时优先考虑使用砖块,如果砖块数量不够则使用梯子替换最大高度差位置的砖块,直到砖块和梯子都使用完毕时,到达的建筑物即为最远建筑物。如果以最佳方式使用给定的梯子和砖块,返回可以到达的最远建筑物的下标。

stormsunshine的博客 294

强化学习第十一课:完整 Q-Learning 算法

表示有:\[ 5 \]0 1 2 3 40:向左1:向右目标位置:\[ 4 \]

qq_56657939的博客 324

【Deep-OC-SORT 01】多轨迹算法Deep-OC-SORT源码分析

本工程基于Deep-OC-SORT核心模块,重构并适配了EmbeddingComputer(外观特征提取)、CMCComputer(相机运动补偿)与OCSort(主跟踪器)三类。前者实现整框/网格模式的特征提取与L2归一化;后者通过稀疏光流或SIFT匹配估计仿射变换,补偿相机运动;主跟踪器融合IoU、外观相似度与方向一致性,支持模块开关与自定义组件,实现高效多目标跟踪。

Jayson 博客 337

【Deep-OC-SORT 05】多轨迹算法Deep-OC-SORT-IoU代价与VDC方向一致性融合过程

本工程在DeepOcSort中实现三路融合关联:IoU(位置重叠)、VDC(速度方向一致性)与外观相似度,通过加权求和生成总相似度,取负作为匈牙利算法的代价。其中,VDC利用轨迹惯性方向与检测方向的点积判断运动一致性,抑制反向误匹配;外观分采用网格化余弦距离并结合动态权重AW,提升遮挡场景下的鲁棒性。支持关闭外观分支(--emb_off),且通过快路径优化加速多数帧处理。最终配对经IoU复核,确保位置合理性,有效减少密集场景下的ID切换。

Jayson 博客 346
上一篇: 教你算法思想解决数组中移除元素OJ题
下一篇: 手撕单链表
燕山不是雪
博客等级 码龄2年 151粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值