按奇偶排序数组
程序员文章站
2022-07-02 09:14:17
922. 按奇偶排序数组 II给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。今天的题目很简单,看完题目后我反手就写出了答案(感觉自己又行了O(∩_∩)O哈哈~),下面是Python的代码:class Solution: def sortArrayByParityII(self, A: List[int]) -> List[i...
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
上一篇: Django是什么(基础教程)
下一篇: 蒜台是发物嘛,蒜苔的做法有哪些