题目要求:

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

解题方法:

  方法一:时间复杂度O(n^2)

    最容易想到:从头扫描这个数组,每碰到一个偶数时,拿出这个数字,并把位于这个数字后面的所有数字往前挪动一位。挪完之后在数组的末尾有一个空位,这时把该偶数放入这个空位;

  方法二:时间复杂度O(n)

    重新建立一个向量,然后进行两次扫描:第一次扫描奇数,第二次扫描偶数,完毕,不废话,直接上代码:

 1 class Solution{
 2 public:
 3     void reOrderArray(vector<int> &array){
 4         int len = array.size();
 5         vector<int> vec(array.begin(),array.end());
 6         int l = 0;
 7         for(int x: vec){
 8             if(x%2==1){
 9                 array[l++] = x;
10             }
11         }
12         for(int y : vec){
13             if(y%2 == 0){
14                 array[l++] = y;
15             }
16         }
17     }
18 };

转载于:https://www.cnblogs.com/wangshujing/p/6934629.html

剑指offer之【调整数组顺序使奇数位于偶数前面】相关推荐

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

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

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

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

  3. 剑指Offer #13 调整数组顺序使奇数位于偶数前面 | 图文详解

    题目来源:牛客网-剑指Offer专题 题目地址:调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的 ...

  4. 【双100%解法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

    立志用最少的代码做最高效的表达 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输 ...

  5. 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数

    一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...

  6. Leetcode 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 (每日一题 20210917)

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.示例:输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1 ...

  7. 《剑指offer》调整数组顺序使奇数位于偶数前面

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

  8. 《剑指Offer》 调整数组顺序使奇数位于偶数前面

    题目描述: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 思路: 先取a ...

  9. 【剑指offer】调整数组顺序使奇数位于偶数前面

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

  10. 剑指offer——21.调整数组顺序使奇数位于偶数前面

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

最新文章

  1. groovy 使用java类_在java中使用groovy怎么搞 (java and groovy)
  2. Python 内建函数
  3. linux 病毒脚本,解析常见的Linux病毒
  4. 缓冲区 cin() getline() getchar()
  5. 创建分区表+分区表的分类+创建散列分区表+查看散列分区表分区中的数据+创建列表分区表+查看列表分区表分区中的数据...
  6. C++ Primer 5th笔记(chap 14 重载运算和类型转换)函数匹配与重载运算符
  7. Android Studio 插件开发详解四:填坑
  8. 树的宽度 递归法和非递归法
  9. redis源码剖析(十二)—— RDB持久化
  10. centos7限制普通用户访问单一目录下的单一文件
  11. Python 只读属性的实现
  12. csuoj 1355: 地雷清除计划
  13. 基于UPS效率进行准确的效用成本分析
  14. python中日期和时间格式化输出的方法
  15. 文件服务器自动化管理
  16. 强连通分量的一种类 Tarjan 算法以及Tarjan算法推导初探
  17. 教你如何关闭445端口
  18. Spring Boot-入门
  19. docker之旅,附带实例脚本
  20. 迟来的2021年终总结,2022已开始,Good luck every one! No pain No gain!

热门文章

  1. 原型模式(ProtoType) - Java里的对象复制
  2. Oracle with子句的简单介绍.
  3. 2020 我的C++的学习之路
  4. ccf-csp #201912-1 报数
  5. MYSQL交通系统查询,城市公交查询系统的设计与实现(SSH,MySQL)(含录像)
  6. mysql order by 日期_mysql order by基于时间的盲注
  7. 6 岁!是时候重新认识下 Serverless 了
  8. springmvc怎么解析post_秋招跳槽,面试是拦路虎?【spring、springMVC】- 常见面试题汇总...
  9. angular 多个片段拼接_10个JavaScript代码片段,帮助你成为更好的开发者
  10. php yield 个人小解_php 技术 yield 问题