调整数组顺序使奇数位于偶数前面
发布日期:2021-06-20 02:50:13
浏览次数:5
分类:技术文章
本文共 977 字,大约阅读时间需要 3 分钟。
题目
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
示例一
输入:nums = [1,2,3,4]
输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。思路一
开额外的一个数组,然后开始遍历。
代码一
class Solution { public: vector exchange(vector & nums) { int n = nums.size(), l = 0, r = n - 1; vector ans(n, 0); for(auto d : nums){ if(d % 2) ans[l++] = d; else ans[r--] = d; } return ans; }};
思路二
- 双指针,从左边找第一个偶数,从右边找第一个技术
- 交换位置
代码二
class Solution { public: vector exchange(vector & nums) { int n = nums.size(), l = 0, r = n - 1; while(l <= r){ while(l <= r && nums[l] % 2) l++; while(l <= r && nums[r] % 2 == 0) r--; //异或实现两数字的交换 if(l < r){ nums[l] = nums[l] ^ nums[r]; nums[r] = nums[l] ^ nums[r]; nums[l] = nums[l] ^ nums[r]; } } return nums; }};
转载地址:https://blog.csdn.net/free1993/article/details/114876568 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月10日 13时05分13秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
为《 两周自制脚本语言 》添加中文测试代码
2019-04-26
将《 两周自制脚本语言 》测试中使用的接口中文化
2019-04-26
5分钟入门LingaScript-尝鲜中文版TypeScript
2019-04-26
重拾《 两周自制脚本语言 》- 支持中文标识符
2019-04-26
Java实现文本编辑时基于拼音输入的补全原型
2019-04-26
从立创EDA,Gratipay看中文编程开发环境和推广运营的一个趋势
2019-04-26
中文代码之Django官方入门:建立模型
2019-04-26
Python实现推流直播
2019-04-26
你不得不了解的卷积神经网络发展史
2019-04-26
你不得不了解的机器学习知识
2019-04-26
你不得不了解的深度学习知识(一)
2019-04-26
你不得不了解的深度学习知识(二)
2019-04-26
AI算法之Encoder-Decoder 和 Seq2Seq
2019-04-26
AI算法之Attention机制
2019-04-26
人体口罩佩戴检测实战
2019-04-26
[YoLoV3目标检测实战] keras+yolov3训练自身口罩检测数据集
2019-04-26
[实战]200类鸟类细粒度图像分类
2019-04-26
【实战】英文垃圾短信分类
2019-04-26