思路:类似快排的思路,从两端开始查找,左边找到第一个偶数,右边找到第一个奇数进行交换,进入递归即可。

Python:

class Solution:
    def exchange(self, nums: List[int]) -> List[int]:
        i,j=0,len(nums)-1
        while i<j:
            while i<j and nums[i]%2!=0:
                i+=1
            while i<j and nums[j]%2==0:
                j-=1
            nums[i],nums[j]=nums[j],nums[i]
        return nums