当前位置: 首页 > article >正文

马上深挖!!!三段逆置如何实现数组轮转?!用最简单的话让你秒懂

一、目的给定一个数组和一个整数k让数组向右轮转k个数。如令[1,2,3,4,5,6]向右轮转3个数结果为[4,5,6,1,2,3]。二、代码#include iostream using namespace std; void swap(int* a,int* b) { int tmp*a; *a*b; *btmp; return; } void reverse(int* a,int begin,int end) { int leftbegin,rightend; while(leftright) { swap(aleft,aright); left; right--; } return; } void Rotate(int* a,int size,int k) { k%size; //数组整体逆置 reverse(a,0,size-1); //对*B逆置 reverse(a,0,k); //对*A逆置 reverse(a,k,size-1); return; } void show(int* arr,int len) { for(int i0;ilen;i) coutarr[i] ; return; } int arr[]{1,2,3,4,5,6,7}; int nsizeof(arr)/sizeof(arr[0]); int main() { show(arr,sizeof(arr)/sizeof(arr[0])); Rotate(arr,n,4); coutendl; show(arr,n); return 0; }三、解析首先我们把数组arr分成两段第一段为A长度k剩下的部分作为第二段B。现在如果A和B内部都只有一个数字那么要实现arr逆序只需arr整体逆序即让AB变成BA。理解了A、B都是单个元素的情况之后我们就可以推广到A、B包含多个元素的情况。当A、B包含多个元素时延续之前的思路我们对arr整体逆置注意当A、B包含多个元素对arr整体逆置不仅会对调 A、B的位置还会让A、B内部分别发生逆置。我们设A逆置的结果为A*B逆置的结果为B*则数组从AB变成了B*A*此时为了实现我们的目标即BA只需再对*B和*A分别进行一次逆置就可让*B*A变成BA完成四、细节数组的轮转就一个转盘若向右轮转的位数k等于arr的长度size则会轮转一圈回到原来的样子。所以考虑到这个问题的“周期性”我们需要对k进行处理若ksize则会造成数组的越界无法实现正常的轮转。所以根据处理“周期性问题”的通法对k取模k%size让k处于范围0~size-1内便能在k过大时实现正常的轮转。五、触类旁通如果想让数组ABC变成CBA呢同样的思路我们对ABC整体逆置变成*C*B*A再对三部分分别逆置即可变成CBA可见“整体逆置部分逆置”的思路可以处理很多“交换数组内部顺序”的问题把它牢记在心里一起解决更多问题吧。

相关文章:

马上深挖!!!三段逆置如何实现数组轮转?!用最简单的话让你秒懂

一、目的给定一个数组和一个整数k&#xff0c;让数组向右轮转k个数。如令[1,2,3,4,5,6]向右轮转3个数&#xff0c;结果为[4,5,6,1,2,3]。二、代码#include <iostream> using namespace std;void swap(int* a,int* b) {int tmp*a;*a*b;*btmp;return; }void reverse(int* a…...

3步打造智能家居音乐自由:给爱好者的开源方案详解

3步打造智能家居音乐自由&#xff1a;给爱好者的开源方案详解 【免费下载链接】xiaomusic 使用小爱音箱播放音乐&#xff0c;音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 在智能家居的日常使用中&#xff0c;许多用户都面临着…...

德希科技在线污泥浓度传感器

一、应用场景与产品定位 污泥浓度是污水处理生化系统稳定运行的关键控制指标&#xff0c;研发人员针对市政污水、工业废水处理厂曝气池、二沉池、氧化沟等场景的监测需求&#xff0c;推出散射光法在线污泥浓度传感器。设备以高稳定性、强抗干扰、长寿命的特性&#xff0c;适配…...

告别“AI只会聊天”:用OpenClaw+星链4SAPI打造你的办公自动化Agent

你有没有过这种时刻——邮箱右上角的红点像一道催命符&#xff0c;文件夹乱得像个数据坟场&#xff0c;日程表排得跟俄罗斯方块似的&#xff0c;领导一句“把本周情况汇总下”&#xff0c;你就得在聊天记录里搞考古发掘。打开AI&#xff0c;发现它除了陪你聊天&#xff0c;什么…...

抛开Transformer,我们还能如何理解Attention机制?

对于许多软件测试从业者而言&#xff0c;“Attention机制”这个词常常与Transformer、BERT、GPT这些大模型名词紧密捆绑&#xff0c;仿佛是深度学习“黑盒”中一个难以触及的复杂组件。然而&#xff0c;当我们暂时抛开Transformer这棵参天大树&#xff0c;回归到Attention机制本…...

新手入门:在快马平台生成代码,理解智能应用控制警告的模拟实现

今天想和大家分享一个特别适合编程新手的小项目——通过HTML和JavaScript模拟"智能应用控制"的安全警告弹窗。这个练习不仅能帮助我们理解现代操作系统中的安全机制&#xff0c;还能学到实用的前端开发技巧。 项目背景理解 智能应用控制是现代操作系统的一项重要安全…...

安全测试入门:开发与测试都需要知道的OWASP TOP 10

为何OWASP TOP 10是测试人员的必修课&#xff1f;在数字化浪潮席卷全球的今天&#xff0c;软件已深度融入商业运营与社会生活。每一次点击、每一次数据交换的背后&#xff0c;都潜藏着安全风险。对于软件测试从业者而言&#xff0c;功能与性能测试仅是基础&#xff0c;安全测试…...

2026企业AI落地必看:避开3大坑,让你的智能体真正帮你赚钱!收藏这份实战指南

本文深入探讨了企业AI智能体落地的现实难题&#xff0c;包括数据基础薄弱、单体智能体处理复杂流程能力不足以及人机协同缺失三大痛点。作者通过分析30企业案例&#xff0c;提出了针对性的解决方案&#xff1a;建立RAG架构和OCR数据清洗以夯实数据基础&#xff1b;采用多智能体…...

新手必看:Sambert多情感语音合成镜像部署与使用全攻略

新手必看&#xff1a;Sambert多情感语音合成镜像部署与使用全攻略 1. 引言&#xff1a;为什么选择这个语音合成镜像 语音合成技术正在改变我们与数字世界的互动方式。想象一下&#xff0c;你的智能助手不仅能说话&#xff0c;还能根据场景切换不同的情感和音色——这正是Samb…...

N_m3u8DL-RE:突破流媒体下载限制的全场景解决方案 - 开发者与内容创作者的高效工具

N_m3u8DL-RE&#xff1a;突破流媒体下载限制的全场景解决方案 - 开发者与内容创作者的高效工具 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_…...

哔哩下载姬:三步搞定B站视频永久收藏的智能工具

哔哩下载姬&#xff1a;三步搞定B站视频永久收藏的智能工具 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#xff09;…...

从零入门大模型应用开发:收藏这份学习清单,轻松转型高薪岗位!

文章指出当前AI应用开发社招要求已提升&#xff0c;不再满足于简单的API调用或Demo实现。文章警示三类人慎入AI开发社招&#xff0c;并强调能力复合化、工程深度和业务理解的重要性。作者分享了四年AI开发经验&#xff0c;建议深入原理、重构项目经验&#xff0c;并给出了量化解…...

基于WPS云服务架构的Vue文档预览组件技术实现与性能优化

基于WPS云服务架构的Vue文档预览组件技术实现与性能优化 【免费下载链接】wps-view-vue wps在线编辑、预览前端vue项目&#xff0c;基于es6 项目地址: https://gitcode.com/gh_mirrors/wp/wps-view-vue 在微前端架构和云原生应用日益普及的技术背景下&#xff0c;企业级…...

剪映高级感文字动画素材合集 预设+教程全整理

平时做口播视频时&#xff0c;总觉得文字动画的精致度跟不上内容节奏&#xff0c;找适配的素材又要花不少时间&#xff0c;所以最近整理了一份剪映高级感口播动态文字动画素材合集&#xff0c;涵盖预设、教程和配套排查资料&#xff0c;今天分享给有同样需求的朋友。 一、素材合…...

轻量工具如何承载复杂项目?揭秘GanttProject的极简主义哲学

轻量工具如何承载复杂项目&#xff1f;揭秘GanttProject的极简主义哲学 【免费下载链接】ganttproject Official GanttProject repository 项目地址: https://gitcode.com/gh_mirrors/ga/ganttproject 在项目管理领域&#xff0c;存在一个普遍的矛盾&#xff1a;专业工具…...

突破性数字音乐解放方案:QMCDecode实战指南与3大智能转换场景解密

突破性数字音乐解放方案&#xff1a;QMCDecode实战指南与3大智能转换场景解密 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#…...

Lingbot-Depth-Pretrain-ViTL-14 模型压缩与加速:面向边缘设备的部署优化教程

Lingbot-Depth-Pretrain-ViTL-14 模型压缩与加速&#xff1a;面向边缘设备的部署优化教程 想让一个像 Lingbot-Depth-Pretrain-ViTL-14 这样的大模型在树莓派、Jetson 这类小设备上跑起来&#xff0c;是不是感觉像让一头大象挤进小轿车&#xff1f;直接部署&#xff0c;设备可…...

OpenClaw技能开发入门:为Qwen3-14b_int4_awq扩展自定义功能

OpenClaw技能开发入门&#xff1a;为Qwen3-14b_int4_awq扩展自定义功能 1. 为什么需要自定义技能&#xff1f; 去年冬天&#xff0c;我花了整整两周时间手动整理公司项目的技术文档。每天重复着复制、粘贴、格式调整的机械操作&#xff0c;直到偶然发现OpenClaw这个开源自动化…...

Driver Store Explorer:Windows驱动管理的终极免费解决方案,轻松释放10GB+磁盘空间

Driver Store Explorer&#xff1a;Windows驱动管理的终极免费解决方案&#xff0c;轻松释放10GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Driver Store Explorer&#x…...

Wan2.2-I2V-A14B持续集成/持续部署(CI/CD)流水线搭建

Wan2.2-I2V-A14B持续集成/持续部署&#xff08;CI/CD&#xff09;流水线搭建 1. 引言 在AI模型服务开发中&#xff0c;频繁的迭代更新是常态。每次代码修改后手动执行测试、构建和部署不仅效率低下&#xff0c;还容易出错。本文将带你从零开始&#xff0c;为Wan2.2-I2V-A14B模…...

如何高效获取学术文献:Zotero-SciPDF自动下载插件完全指南

如何高效获取学术文献&#xff1a;Zotero-SciPDF自动下载插件完全指南 【免费下载链接】zotero-scipdf Download PDF from Sci-Hub automatically For Zotero7 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-scipdf 作为学术研究工作者&#xff0c;你是否经常为查…...

uniapp学习9,同时兼容h5和微信小程序的百度地图组件

H5端微信小程序端&#xff1a;manifest.json配置 "mp-weixin" : {"appid" : "你的微信小程序appid","setting" : {"urlCheck" : false},"usingComponents" : true,"permission": {"scope.userLoca…...

3步让旧款iOS设备重获新生:Legacy-iOS-Kit性能拯救全指南

3步让旧款iOS设备重获新生&#xff1a;Legacy-iOS-Kit性能拯救全指南 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit …...

突破QQ音乐格式壁垒:QMCDecode全方位解密方案与跨场景应用指南

突破QQ音乐格式壁垒&#xff1a;QMCDecode全方位解密方案与跨场景应用指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目录&#xff…...

FFM Arena内存管理失效引发Native OOM?深度拆解Java 22 JEP 464中Scoped Memory Model的3种安全模式切换策略

第一章&#xff1a;FFM Arena内存管理失效引发Native OOM&#xff1f;深度拆解Java 22 JEP 464中Scoped Memory Model的3种安全模式切换策略Java 22 引入的 JEP 464 — Scoped Memory Model&#xff0c;旨在为 Foreign Function & Memory API&#xff08;FFM&#xff09;提…...

C语言宏定义:嵌入式开发中的高效利器与避坑指南

1. C语言宏定义的基础与陷阱在嵌入式开发中&#xff0c;宏定义是C语言最强大的特性之一&#xff0c;但也是最容易踩坑的特性。让我们从一个简单的需求开始&#xff1a;如何用宏实现两个数的比较并返回较小值&#xff1f;初学者最常见的写法是这样的&#xff1a;#define MIN(a,b…...

【05-log-+-diff:看懂你改了什么、历史是什么】

第五篇&#xff1a;log diff&#xff1a;看懂你改了什么、历史是什么会提交只是第一步&#xff0c;会"读"历史才是真的用上了 Git。这篇教你把 log 和 diff 玩出花来。git log&#xff1a;查看提交历史 git log默认输出太详细&#xff0c;通常用这些参数来精简&…...

OpenClaw 企业级实战:Java 微服务集成 AI 智能体,自动处理业务流

文章目录当你的微服务开始"自己思考"OpenClaw 到底是个啥&#xff1f;别被概念吓住架构设计&#xff1a;让 Java 微服务和 AI 智能体"合伙创业"整体架构草图为什么非得用 Java&#xff1f;Python 不香吗&#xff1f;实战准备&#xff1a;Spring AI 与 Open…...

GitHub界面中文化:如何让全球最大的代码托管平台说中文?

GitHub界面中文化&#xff1a;如何让全球最大的代码托管平台说中文&#xff1f; 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 当我们…...

面试官最爱问的Java集合+多线程,详解+示例

文章目录一、开篇&#xff1a;为什么面试官揪着这俩不放&#xff1f;二、Java集合&#xff1a;别只会用ArrayList了2.1 List三兄弟&#xff1a;ArrayList、LinkedList、Vector2.2 Set家族&#xff1a;HashSet、LinkedHashSet、TreeSet2.3 Map三巨头&#xff1a;HashMap、Concur…...