题目
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
示例:
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一
辅助法:
class Solution(object):
def exchange(self, nums):
"""
:type nums: List[int]
:rtype: List[int]
"""
odd=[]
ous=[]
for idx,num in enumerate(nums):
if num%2!=0:
odd.append(num)
else:
ous.append(num)
return odd+ous
快慢指针
快指针找奇数,慢指针找偶数,找到就互换
class Solution(object):
def exchange(self,nums):
left,right=0,len(nums)-1
while(left<right):
while(left<=right) and (nums[left]%2==0):
left+=1
while(left<=right) and (nums[right]%2!=0):
right-=1
if(left>right):
break
nums[left],nums[right]=nums[right],nums[left]
return nums