题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

思路

归并排序相对顺序不变性的特点,复杂度O(log⁡2N)O(\log_{2}^{N})O(log2N​),需要注意的是,比较时需要控制的不是大小,而是奇偶性。C++自带的库函数std::stable_sort有这个功能。。。相当省心啊。。。

AC代码

注意自定义的lambda比较函数。。。。

class Solution {public:void reOrderArray(vector<int> &array) {stable_sort(array.begin(), array.end(), [](const int& a, const int& b)->bool {if(a % 2 != 0 && b % 2 == 0) {return true;} else {return false;}});}
};

剑指offer之使数组的奇数在偶数前面相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java

    <LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...

  2. 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

    [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 文章目录 [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 一.双指针 一.双指针 解题思路: ...

  3. 【剑指offer】数据结构——数组

    目录 数据结构--数组 直接解 [剑指offer]03.数组中重复的数字 排序法 集合法 原地置换 [剑指offer]04. 二维数组中的查找 [剑指offer]29. 顺时针打印矩阵 [剑指offe ...

  4. 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java

    <LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...

  5. 剑指 Offer 11. 旋转数组的最小数字 简单

    剑指 Offer 11. 旋转数组的最小数字 题目 解题思路 方法(一)直接遍历法 方法(二)二分查找法 题目 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组 ...

  6. 剑指offer 11. 旋转数组的最小数字(很详细!)

    剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...

  7. 【LeetCode】剑指 Offer 45. 把数组排成最小的数

    [LeetCode]剑指 Offer 45. 把数组排成最小的数 文章目录 [LeetCode]剑指 Offer 45. 把数组排成最小的数 package offer;import java.uti ...

  8. 【LeetCode】剑指 Offer 11. 旋转数组的最小数字

    [LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...

  9. 【剑指 Offe】剑指 Offer 11. 旋转数组的最小数字

    目录标题 算法汇总 题目 关键点 代码 1.解体方法 - 二分法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码 ...

最新文章

  1. 学java时的一些笔记(1)
  2. 框架设计:实现数据的按需更新与插入的改进--用数据对比进一步说明
  3. 姚期智:人工智能存在三大技术瓶颈
  4. 从N个元素中选择第i小的元素
  5. 使用CreateFile读写文件
  6. 双“11”搞促销?用贪心算法来盘他!
  7. MFC之处理消息映射的步骤...
  8. 【Elasticsearch】es 7.8.0 唐诗三百首写入 Elasticsearch 会发生什么
  9. WSL Arch Linux 已在 Microsoft Store 上可用
  10. 【感悟】本书书名无法描述本书内容(一)
  11. asp.net中注册脚本的两个方法
  12. jquery程序 windows移植到linux显示不了,Windows10 + WSL 使用Linux图形界面程序
  13. 安卓基础干货(六):安卓Activity的学习
  14. SpringSecurity OAuth2搭建微服务安全认证网关
  15. 网络常用端口号大全----2
  16. Ruckus 7372 Multimedia Hotzone Wireless AP 配置
  17. c语言 qt 写小游戏,Qt实现Flappy Bird游戏
  18. Jenkins 与 GitLab 的自动化构建之旅
  19. Redis数据库中Hash哈希的介绍,常用命令和应用场景
  20. element-plus中el-dialog导致props报错问题解决

热门文章

  1. python35安装教程_python详细安装教程,非常值得看的一篇文章
  2. pytorch学习笔记(二十四):深度卷积神经网络(AlexNet)
  3. 树与图的深度优先遍历
  4. 【五级流水线CPU】—— 6. 加载存储指令(14)
  5. hihocoder1241 Best Route in a Grid
  6. 查看python下安装的包有哪些
  7. TP4056(x) 锂电线性充电电路应用手册
  8. 利用阿里云LAMP环境搭建搭建wiki知识库
  9. CSS知识点补充收集
  10. RportViewer(20121023) 参数引起的异常