一个数组里有奇数有偶数(乱序),调整数组顺序使奇数位于偶数前面。(测试用例仅做参考,我们会根据代码质量进行评分)
时间: 2024-01-30 19:03:36 浏览: 61
Python《剑指offer》算法实现-调整数组顺序使奇数位于偶数前面
你可以使用双指针法来解决这个问题。定义两个指针,一个指向数组头部,一个指向数组尾部。然后分别向中间遍历,当左指针指向偶数,右指针指向奇数时,交换两个数字的位置。直到左右指针相遇为止。
下面是一个示例的实现代码:
```python
def rearrange_array(nums):
left = 0
right = len(nums) - 1
while left < right:
# 左指针指向奇数,继续向右移动
if nums[left] % 2 == 1:
left += 1
# 右指针指向偶数,继续向左移动
elif nums[right] % 2 == 0:
right -= 1
# 左指针指向偶数,右指针指向奇数,交换两个数字的位置
else:
nums[left], nums[right] = nums[right], nums[left]
left += 1
right -= 1
return nums
# 测试用例
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = rearrange_array(nums)
print(result)
```
这段代码会输出 `[1, 9, 3, 7, 5, 6, 4, 8, 2]`,其中奇数位于偶数前面。注意,这里假设奇数和偶数的相对顺序不重要,只要奇数在偶数前面即可。
阅读全文