12.调整数组顺序,使得奇数在前,偶数在后
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
解法1:创建一个新数组保存偶数 ;删除原数组中对应的偶数位置;新数组放在原数组的后面
class Solution{
public:void reOrderArray(vector<int> &array) {// 分两步操作:1、从原数组取数 放入新的数组 ,由于vector 具有可调的大小 故删除了数组就会压缩//2、从从新数组压栈进入老数组vector<int> array_temp;//创建一个新的数组vector<int>::iterator ib1, ie1;//迭代器相当于 衔接容器和算法 可以访问里面的元素//https://www.cnblogs.com/yuehouse/p/10085127.html// vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素ib1 = array.begin();for (; ib1 != array.end();){ //遇见偶数,就保存到新数组,同时从原数组中删除if (*ib1 % 2 == 0) {array_temp.push_back(*ib1);ib1 = array.erase(ib1);}//删除后后面的数自动往前面移动,否则无法解释else//如果不是偶数则该地址加1{ib1++;}}vector<int>::iterator ib2, ie2;ib2 = array_temp.begin();ie2 = array_temp.end();for (; ib2 != ie2; ib2++) //将新数组的数添加到老数组{array.push_back(*ib2);}}
};
解法2:奇数和偶数的位置互换,前后互换即可
冒泡法
class Solution {
public:void reOrderArray(vector<int> &array) {for (int i = 0; i < array.size();i++){for (int j = array.size() - 1; j>i;j--){if (array[j] % 2 == 1 && array[j - 1]%2 == 0) //前偶后奇交换{swap(array[j], array[j-1]);}}}}
};
后面可以考虑对冒泡法进行改进。待续!并将几种排序算法归类。
参考:https://www.nowcoder.com/profile/5972229/codeBookDetail?submissionId=31482997
12.调整数组顺序,使得奇数在前,偶数在后相关推荐
- java 二维数组奇数金字塔_调整数组顺序使得奇数在前偶数在后(Java)
/* 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. */ //使用额外数组时 ...
- java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面
LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入 ...
- 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数
一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...
- 【剑指offer - C++/Java】13、调整数组顺序使奇数位于偶数前面
在线题目链接:调整数组顺序使奇数位于偶数前面 文章目录 1 题目描述 2 题目分析 2.1 方法1 2.11 Java代码 2.12 C++代码 2.2 方法2 2.21 Java代码 2.22 C+ ...
- 九度oj 题目1516:调整数组顺序使奇数位于偶数前面
题目1516:调整数组顺序使奇数位于偶数前面 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:3416 解决:1091 题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序, ...
- 剑指offer:面试题21. 调整数组顺序使奇数位于偶数前面
题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...
- 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
<LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...
- 面试 6:调整数组顺序使奇数位于偶数前面
今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所 ...
- 【编程题目】调整数组顺序使奇数位于偶数前面
54.调整数组顺序使奇数位于偶数前面(数组). 题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分.要求时间复杂度为 O(n). 小题,秒灭. ...
- python调整数组顺序使奇数位于偶数前面
|调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输出 ...
最新文章
- 猪八戒网CI/CD最佳实践之路
- 4*4按键扫描程序c语言,【资料】单片机4*4矩阵键盘扫描程序(c语言+汇编语言2个版本)...
- Spring Integration 4.3.10 发布,Spring 消息通信
- python 微服务 etcd_架构之微服务(etcd)
- 分库分表之历史表如何选择最佳分片路由规则
- hdu 5094 Maze
- 内存管理单元MMU简介
- Java 的内存分类
- dbMigration .NET 数据同步迁移工具
- 省、市联动的SQL脚本
- 容器镜像相关项目 错误 分析步骤
- 七月算法机器学习3 矩阵分析与应用
- 电视机hdr是什么功能
- matlab三个自变量一个因变量拟合
- POI解析1997-2003、2007版本excel
- 企业财务制度二--(五)损益类科目 5101 主营业务收入(转载)
- github优秀项目分享:基于yolov3的轻量级人脸检测、增值税发票OCR识别 等8大项目...
- 大学里面抢课到底可行吗?我来给你彻底说明白
- 葡萄保护袋、葡萄套袋、水果保护袋、果袋
- 通过Temboo实现从Arduino获取雅虎天气信息