剑指offer——21.调整数组顺序使奇数位于偶数前面
题目:
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
知识点:
- 保证相对位置不变,则只能顺次移动或相邻交换
注意:
无
代码实现:
定义2个指针i,j,i在数组中从头依次寻找偶数,j寻找i之后最近的奇数,找到后将第j个元素赋值给i,将原i~j-1个元素向后移动一位;至j遍历到数组最后一个元素时,跳出。
/*数组奇偶排序*/
//判断是否为奇数
bool isOdd(int a) {if (a & 1 == 1) {return true;}return false;
}
void reOrderArray(vector<int> &array) {int i = 0, j;//循环,当i=array的长度时退出while (i < array.size()) {//i用来找偶数while (i < array.size() && isOdd(array[i])) {++i;}//j用来找奇数j = i + 1;while (j < array.size() && !isOdd(array[j])) {++j;}if (j < array.size()) {//将array[j]插入到array[i],array[i,j-1]整体后移int temp = array[j];for (int a = j; a > i; a--) {array[a] = array[a - 1];}array[i++] = temp;}else {break;}}
}int main()
{ vector<int> array;for (int i = 1; i < 6; i++) {array.push_back(i);}reOrderArray(array);for (int i = 0; i < array.size(); i++) {cout << array[i] << endl;}getchar();return 0;
}
剑指offer——21.调整数组顺序使奇数位于偶数前面相关推荐
- 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
<LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...
- 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
[LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 文章目录 [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 一.双指针 一.双指针 解题思路: ...
- 【双100%解法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
立志用最少的代码做最高效的表达 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输 ...
- Leetcode 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 (每日一题 20210917)
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.示例:输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1 ...
- 【算法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
文章目录 1.概述 2,双指针 1.概述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...
- 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 (快速排序partion操作应用)
借助一个额外的空间,空间复杂度O(N), 时间复杂度O(1) 快速排序partion操作,空间O(1), 不稳定 冒泡排序,O(n^2), 空间O(1) class Solution { publi ...
- LeetCode-剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 思路一:使用快慢双指针 1: i找偶数找到了,继续往下执行,找不到i++ 2:j找奇数,找到了继续往下执行,找不到j– 3:最后交换 clas ...
- 剑指Offer #13 调整数组顺序使奇数位于偶数前面 | 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的 ...
- 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数
一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...
最新文章
- 关于Hibernate中No row with the given identifier exists问题的原因及解决
- how SAP CRM settype structure names are determined
- Oracle分析函数-keep(dense_rank first/last)
- python内置函数 pdf_关于Python巧妙而强大的内置函数
- PS把一张白色背景的图片设为透明
- andriod studio 运行 无结果_无负压静音供水设备下篇一
- 看完后,别再说自己不懂用户画像了
- TensorFlow笔记(10) CheckPoint
- linux环境下安装curl,Linux环境下curl安装和移植
- 全自动高清录播服务器,全自动高清录播服务器 高清录播系统
- uni-app实现问卷调查试卷
- memcached的安装
- 【高德地图POI踩坑】AMap.PlaceSearch无法使用
- Hyperledger Fabric 链码生命周期
- 等保2.0测评综合得分计算
- 邮件服务器域名怎么查看,如何查看企业邮箱是哪里的域名
- Android基于红米系列手机读取本地图片路径失败的解决方案
- 快速了解什么是CDN
- 安装apk报错“解析包时出现问题”
- P R MAP简单理解,yolo中
热门文章
- Kuberentes-入门
- 题解【luogu P2421 bzoj P1407 [NOI2002]荒岛野人】
- android摄像头的autoFocus-----循环自动聚焦的实现
- 18000 Two String 暴力。——— 读题
- 【CSWS2014 Main Conference】Some Posters
- 24个坏行为让你身体越来越丑
- 【Java 集合】ArrayList、LinkedList、Stack、Queue、Set、Map, 迭代器 Iterable、Iterator,Collections类
- 【Python笔记】使用 re 模块实现正则表达式操作
- 索引书单(持续更新中)
- 软件设计师17-网络基础知识