调整数组顺序使奇数位于偶数前 — C++实现
发布日期:2021-10-02 06:27:39
浏览次数:2
分类:技术文章
本文共 459 字,大约阅读时间需要 1 分钟。
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
解题思路
若要使奇数位于偶数前面,这个要求不难(前后两个指针,偶数和奇数交换),而题目中还要求我们保持相对位置不变,那么:
我们可以申请额外的空间,将数组中的奇数和偶数都取出来,然后将原数组按照奇偶数的规则修改,但是这样以来会需要更多的额外空间。
也可以采用顺序遍历的方法,遇到偶数则移动到下一个偶数的前面,不过这样的时间复杂度比较高。
这里介绍一种低复杂度的方法:
- 遇到偶数则删除,并将该数放到数组末尾,这样遍历结束以后的数组即为所求。
代码实现
class Solution { public: void reOrderArray(vector &array) { int s=0,e=array.size(); while(s
运行时间:2ms占用内存:476k
转载地址:https://blog.csdn.net/Jeaten/article/details/108308756 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月23日 23时42分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Qt网络编程———TCP(1)
2019-04-27
java 构造方法中super()和this()
2019-04-27
华为HCIA-datacom 学习笔记汇总目录
2019-04-27
第4章 Python 数字图像处理(DIP) - 频率域滤波1 - 傅里叶级数和变换简史
2019-04-27
v-if和v-show的区别
2019-04-27
Linux下创建用户,分组,配置jdk, tomcat
2019-04-27
HikariCP、MySQL Configuration 性能优化
2019-04-27
系统配置自动装载机制 - 分布式开发
2019-04-27
SpringCloud实战 - Hystrix
2019-04-27
Kafka实战(七) - 优雅地部署 Kafka 集群
2019-04-27
Java支付系统(三) - SpringBoot 应用程序搭建
2019-04-27
详解Java业务领域分层模型中的vo/po/dto/pojo/bo
2019-04-27
Java持久层框架MyBatis全注解详解
2019-04-27
Java线程组ThreadGroup
2019-04-27
Java同步器之AbstractOwnableSynchronizer详解
2019-04-27
为什么需要学习并发编程?
2019-04-27
Java计算机IT编程文档常见单词翻译
2019-04-27