给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。 返回满足此条件的 任一数组 作为答案。
时间: 2023-05-31 22:01:22 浏览: 128
python 实现给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)
5星 · 资源好评率100%
一种解法是使用双指针,一个指针从数组头部开始,另一个指针从数组尾部开始,分别向中间移动,当左指针指向的元素为奇数,右指针指向的元素为偶数时,交换两个指针指向的元素。直到左指针和右指针相遇为止。
代码如下:
```python
def sortArrayByParity(nums):
left, right = 0, len(nums) - 1
while left < right:
if nums[left] % 2 == 0:
left += 1
elif nums[right] % 2 == 1:
right -= 1
else:
nums[left], nums[right] = nums[right], nums[left]
left += 1
right -= 1
return nums
```
时间复杂度为 O(n),空间复杂度为 O(1)。
阅读全文