调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
示例:
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。
提示:
1 <= nums.length <= 50000
1 <= nums[i] <= 10000
解题思路:
p从左到右寻找偶数,q从右往左寻找奇数,符合要求后就交换nums[p]和nums[q]的值
python就是数组,把奇数偶数分开在分别插入
java
class Solution {
public int[] exchange(int[] nums) {
int p = 0;
int q = nums.length-1;
int tmp = 0;
while(p<q){
while(p<q && nums[p]%2!=0){
p++;
}
while(p<q && nums[q]%2==0){
q--;
}
tmp = nums[p];
nums[p] = nums[q];
nums[q] = tmp;
}
return nums;
}
}
python
class Solution(object):
def exchange(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
res_1=[]
res_2=[]
for i in nums:
if i%2==0:
res_2.append(i)
else:
res_1.append(i)
for i in res_2:
res_1.append(i)
return res_1