c_jz_调整数组顺序使奇数位于偶数前面∈(有/无相对顺序要求)(双指针)

没有相对顺序要求

使数组所有奇数位于数组的前半部分,所有偶数位于数组的后半部分(没有相对顺序要求)
1,2,3,4
j
i
思路:j记录偶数的位置,只要j的当前位置是偶数,且i位置是奇数,则交换

class Solution:
    def exchange(self, A: List[int]) -> List[int]:
        i,j,n=0,0,len(A)
        while i<n:
            if A[i]&1:
                if i!=j and A[i]&1: A[i],A[j]=A[j],A[i]
                j+=1
            i+=1
        return A

有相对顺序要求

又是一道不同的,且难度上升的题

原文地址:https://www.cnblogs.com/wdt1/p/14084457.html