【剑指21】调整数组顺序使奇数位于偶数前面

思路:双指针

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

引申:如果不能改变奇数偶数之间的相互顺序

class Solution:
    def exchange(self, nums: List[int]) -> List[int]:
        i =0
        while i < len(nums):
            if nums[i]%2==1:
                j = i
                while j-1>=0 and nums[j-1]%2==0:
                    nums[j],nums[j-1] = nums[j-1], nums[j]
                    j-=1
            i+=
        return nums
posted @ 2021-01-08 11:20  WangSJiNa  阅读(65)  评论(0)    收藏  举报