news 2026/5/19 9:27:43

面试常考:如何原地重排数组?这个思路绝了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面试常考:如何原地重排数组?这个思路绝了

解题思路

这道题我们用两个指针分别追踪奇数位和偶数位,每次检查最后一个元素是奇数还是偶数,然后把它交换到对应的位置上。

比如最后一个元素是奇数,就把它换到下一个需要填充的奇数位(1, 3, 5…),换过来的元素又成为新的"最后一个元素",继续这个过程。

这样做的优势是不需要额外空间,而且每次交换都在推进进度,最终当奇数位和偶数位都填满后,数组自然就符合要求了。

举个栗子

输入:[4, 2, 5, 7]

执行过程:

  1. 初始:[4, 2, 5, 7],最后元素 7(奇数) → 交换到 odd=1 →[4, 7, 5, 2]
  2. 最后元素 2(偶数) → 交换到 even=0 →[2, 7, 5, 4]
  3. 最后元素 4(偶数) → 交换到 even=2 →[2, 7, 4, 5]
  4. 最后元素 5(奇数) → 交换到 odd=3 →[2, 7, 4, 5]

输出:[2, 7, 4, 5]

代码实现

publicstaticint[]sortArrayByParityII(int[]nums){intn=nums.length;for(intodd=1,even=0;odd<n&&even<n;){if((nums[n-1]&1)==1){// 最后一个元素是奇数,放到奇数位swap(nums,odd,n-1);odd+=2;}else{// 最后一个元素是偶数,放到偶数位swap(nums,even,n-1);even+=2;}}returnnums;}publicstaticvoidswap(int[]nums,inti,intj){inttmp=nums[i];nums[i]=nums[j];nums[j]=tmp;}

如果觉得有帮助,欢迎点赞、关注、转发~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 8:26:59

Wi-Fi CERTIFIED Multimedia™ (WMM®) 技术概述

1.0 概述 本文档定义了 WMM 的规范,WMM 是基于 IEEE 802.11e 标准补充 [2] 的 802.11 QoS 实现方案。最初提出 WMM 是为了防止因多个不兼容的 802.11e 预标准子集出现而导致的碎片化问题;部署 WMM 将为 802.11 语音、流媒体等服务提供可用的 QoS 功能。 1.1 参考文献 [1] …

作者头像 李华
网站建设 2026/5/11 7:19:51

Astrofy:快速构建现代化个人作品集的免费开源模板

Astrofy&#xff1a;快速构建现代化个人作品集的免费开源模板 【免费下载链接】astrofy Astrofy is a free and open-source template for your Personal Portfolio Website built with Astro and TailwindCSS. Create in minutes a website with Blog, CV, Project Section, S…

作者头像 李华
网站建设 2026/5/16 19:18:33

Opus 音频编解码器深度技术报告:架构原理、传输机制与演进分析

Opus 音频编解码器深度技术报告&#xff1a;架构原理、传输机制与演进分析 1. 引言&#xff1a;音频编码的统一范式 在数字音频处理的历史长河中&#xff0c;音频编码技术长期以来被划分为两个截然不同的阵营&#xff1a;语音编码与通用音频编码。这种二元分化源于应用场景的…

作者头像 李华
网站建设 2026/5/16 18:03:10

Python实现微信域名深度学习驱动的智能对抗性防御与流量伪装系统

Python实现微信域名深度学习驱动的智能对抗性防御与流量伪装系统功能概述本系统实现了一个基于深度强化学习、生成对抗网络和元学习的智能微信域名对抗防御系统。通过多模态特征学习、对抗性流量生成、智能策略优化和联邦学习框架&#xff0c;构建了一个能够持续学习和适应微信…

作者头像 李华
网站建设 2026/5/11 14:05:07

TVM量化部署实践:从模型压缩到CUDA加速的工程化方案

TVM量化部署实践&#xff1a;从模型压缩到CUDA加速的工程化方案 【免费下载链接】tvm-cn TVM Documentation in Chinese Simplified / TVM 中文文档 项目地址: https://gitcode.com/gh_mirrors/tv/tvm-cn 挑战&#xff1a;如何在保持精度的同时实现模型加速 在深度学习…

作者头像 李华