leetcode--python--剑指 Offer 21.

调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

  1. 第一种时间空间复杂度O(N)
  2. 第二种空间复杂度O(1)
class Solution:
    def exchange(self, nums: List[int]) -> List[int]:
        #时间复杂度空间复杂度都为O(N)
        # tem_1 = []
        # tem_2 = []
        # for num in nums:
        #     if num%2:
        #         tem_1.append(num)
        #     else:
        #         tem_2.append(num)
        # result = tem_1 + tem_2
        # return(result)

        #双指针,空间复杂度O(1)
        i, j = 0, len(nums) - 1
        while i < j:
            if nums[i]%2:
                i+=1
            else:
                tem = nums[i]
                nums[i] = nums[j]
                nums[j] = tem
                j-=1
        return(nums)

猜你喜欢

转载自blog.csdn.net/AWhiteDongDong/article/details/114182480