剑指offer-13.调整数组顺序使奇数位于偶数前面-Python
2020-06-04 07:01
162 查看
13.调整数组顺序使奇数位于偶数前面
题目描述
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
记录
方法一:
利用额外的两个列表。找出这个整数数组中的奇数数组和偶数数组,然后合并成大的数组,合并时奇数数组在前偶数数组在后。
# -*- coding:utf-8 -*- class Solution: def reOrderArray(self, array): # write code here array1 = [] array2 = [] out = [] for i in array: if i % 2 != 0: array1.append(i) else: array2.append(i) return array1+array2
方法二:
利用两个指针,一个指向偶数,一个指向奇数。
举例说明:
array:[1,2,3,4,5,6,7,8,9] ,p1=0
进入循环,判断,array[0]=1 1%2=1 p1=1; array[1]=2 2%2=0
p2=1 array[1]=2 2%2=0 p2=2; array[2]=3 3%2=1
将array[2]=3插入index=1的位置,即此时array[1]=3 p1=2
p1=2进入下一次循环。
[1,2,3,4,5,6,7,8,9]
[1,3,2,4,5,6,7,8,9]
[1,3,5,2,4,6,7,8,9]
[1,3,5,7,2,4,6,8,9]
[1,3,5,7,9,2,4,6,8]
class Solution: def reOrderArray(self, array): # write code here p1 = 0 while p1 < len(array): while p1 < len(array) and array[p1]%2 == 1: p1 += 1 p2 = p1+1 while p2 < len(array) and array[p2]%2 == 0: p2 += 1 if p2 < len(array): array.insert(p1,array.pop(p2)) p1 += 1 else: break return array
相关文章推荐
- 【剑指offer】13.调整数组顺序使奇数位于偶数前面[by Python]
- 《苦练算法》-剑指Offer- 十三、 调整数组顺序使奇数位于偶数前面 -python编写
- 【剑指Offer】调整数组顺序使奇数位于偶数前面 解题报告(Python)
- 剑指Offer——(13)调整数组顺序使奇数位于偶数前面
- 剑指Offer13 - 调整数组顺序使奇数位于偶数前面
- 剑指Offer-调整数组顺序使奇数位于偶数前面-Python
- 调整数组顺序使奇数位于偶数前面(剑指Offer 第 13 题)
- 剑指Offer13:调整数组顺序使奇数位于偶数前面
- 剑指offer-调整数组顺序使奇数位于偶数前面(python)
- 剑指Offer 13: 调整数组顺序使奇数位于偶数前面
- 剑指Offer_13_调整数组顺序使奇数位于偶数前面
- (C++)剑指offer-13:调整数组顺序使奇数位于偶数前面(代码的完整性)
- 剑指offer13 调整数组顺序使奇数位于偶数前面
- 剑指Offer--13.调整数组顺序使奇数位于偶数前面
- 调整数组顺序使奇数位于偶数前面[剑指offer]之python实现
- 【剑指offer - C++/Java】13、调整数组顺序使奇数位于偶数前面
- [剑指Offer] 13.调整数组顺序使奇数位于偶数前面
- 剑指Offer [13] 调整数组顺序使奇数位于偶数前面
- 剑指offer 13 调整数组顺序使奇数位于偶数前面
- js剑指offer-13-调整数组顺序使奇数位于偶数前面