【剑指offer】面试题 21:调整数组顺序使奇数位于偶数前面
来源:互联网 发布:js dom style属性 编辑:程序博客网 时间:2024/06/06 01:29
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
时间限制:1秒 空间限制:32768K 热度指数:141774
思路
C++版本
定义两个指针,第一个指针初始化时指向数组的第一个数字,它只往后移动;第二个指针初始化时指向数组的最后一个数字,它只往前移动。
在两个指针相遇前,第一个指针总是在第二个指针的前面。
如果第一个指针指向的数字是偶数,并且第二个指针指向的数字是奇数,则交换这两个数字。
如果第一个指针没有遇到偶数,则不断的往后移动,直到遇到偶数;此时第一个指针遇到偶数,
就停止移动,等待交换;与此同时,第二个指针不断的往前移动,直到第二个指针遇到奇数,此时交换两个数字;
同理,第二个指针遇到奇数,同样停止移动,等待交换,直到第一个指针遇到偶数;
Python版本
1、类似于C++算法,判断奇偶,再交换;
2、定义两个空的数组,遇到奇数放奇数的数组里,遇到偶数放偶数的数组里,最后直接显示两个数组的和;
Note
对于C++ 版本的利用指针来判断,Python实现显得更加简单
参考代码
# -*- coding:utf-8 -*-class Solution: def reOrderArray(self, array): # write code here a = [] # 奇数 b = [] # 偶数 for i in array: if i & 0x1 == 1: a.append(i) else: b.append(i) return a + b
阅读全文
0 0
- 剑指Offer(第二版)面试题21:调整数组顺序使奇数位于偶数前面
- 剑指offer--面试题21:调整数组顺序使奇数位于偶数前面
- 【剑指offer】面试题 21:调整数组顺序使奇数位于偶数前面
- 【剑指offer】面试题21:调整数组顺序使奇数位于偶数前面
- 剑指Offer 面试题21:调整数组顺序使奇数位于偶数前面 Java代码实现
- [剑指offer][面试题14]调整数组顺序使奇数位于偶数前面
- 剑指offer 面试题14 调整数组顺序使奇数位于偶数前面
- 《剑指Offer》面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer 面试题14—调整数组顺序使奇数位于偶数前面
- 《剑指Offer》学习笔记--面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer--面试题14:调整数组顺序使奇数位于偶数前面--Java实现
- 【剑指Offer学习】【面试题14 :调整数组顺序使奇数位于偶数前面】
- 【剑指Offer面试题】 九度OJ1516:调整数组顺序使奇数位于偶数前面
- 剑指offer面试题14-调整数组顺序使奇数位于偶数前面
- 剑指offer-面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer-面试题14.调整数组顺序使奇数位于偶数的前面
- 剑指offer之面试题14:调整数组顺序使奇数位于偶数前面
- 剑指offer之面试题14调整数组顺序使奇数位于偶数前面
- tomcat webapps 目录下web工程只有目录,没有class文件
- jstree -- 使用JSON 数据组装成树
- 剑指offer-最小的K个数
- C++操作redis数据库
- java基础篇《7》--面向对象《2》
- 【剑指offer】面试题 21:调整数组顺序使奇数位于偶数前面
- 嵌入式每日学习心得2017.07.17
- tensorflow逻辑回归测试
- struts解决乱码
- Codeforces 830A(46/600)
- 将相对路径改为绝对路径的几种办法和struts2.x转到action和页面的代码
- hdu 1217 最短路,spfa
- Linux里类似于Windows的共享桌面
- 坦然面对网站降权:告诉你最佳应对流程