Leetcode刷题记录——剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

Leetcode刷题记录——剑指 Offer 21. 调整数组顺序使奇数位于偶数前面_第1张图片
双指针
start = 0
end = len - 1

当start < end时
在start 在start (如果任何一个找不到 即 上述两个执行后 start >=end 直接返回nums)
否则 交换顺序 然后start -= 1
end += 1

class Solution:
    def exchange(self, nums: List[int]) -> List[int]:
        length = len(nums)
        if length <= 1:
            return nums
        start = 0 
        end = length - 1

        #现在 Nums[start]为最前面的奇数 nums[end]为最靠后的偶数
        while start < end:
            while start <= end and nums[start] % 2 != 0:
                start += 1
            while start <= end and nums[end] % 2 == 0:
                end -= 1
            if start < end:
                nums[start],nums[end] = nums[end],nums[start]
                start += 1
                end -= 1
            else:
                return nums
        return nums

你可能感兴趣的:(leetcode,python编程技巧)