按奇偶排序数组

2022-07-28,,

922. 按奇偶排序数组 II

给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。

对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。

你可以返回任何满足上述条件的数组作为答案。

今天的题目很简单,看完题目后我反手就写出了答案(感觉自己又行了O(∩_∩)O哈哈~),下面是Python的代码:

class Solution:
    def sortArrayByParityII(self, A: List[int]) -> List[int]:
        result=[0 for _ in range(len(A))]
        i,j=0,1
        for num in A:
            if num % 2 == 0:
                result[i]=num
                i += 2
            else:
                result[j]=num
                j +=2
        return result

运行效果:

解法二在原数组上重新排序,Python代码如下:

class Solution:
    def sortArrayByParityII(self, A: List[int]) -> List[int]:
        i,j=0,1
        while(i<len(A) or j<len(A)):
            while(i<len(A) and A[i] % 2 is 0):
                i+=2
            while(j<len(A) and A[j] % 2 is not 0):
                j+=2
            if(i<len(A) and j<len(A)):
                A[i],A[j]=A[j],A[i]
        return A

运行效果:

效果也没差多少,不知道为啥,按照道理上一个代码的空间复杂度是O(n)这个代码的空间复杂度是O(1),但是实际效果差不多,没搞明白(┓( ´∀` )┏)。

来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sort-array-by-parity-ii

本文地址:https://blog.csdn.net/qq_41978896/article/details/109635810

《按奇偶排序数组.doc》

下载本文的Word格式文档,以方便收藏与打印。