给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
时间: 2024-04-09 14:29:20 浏览: 180
要重新排列数组,使得数组左边为奇数,右边为偶数,可以使用双指针的方法进行操作。以下是一种实现方式:
```python
def rearrange_array(nums):
left = 0
right = len(nums) - 1
while left < right:
# 左指针指向的元素为奇数时,向右移动左指针
while nums[left] % 2 == 1:
left += 1
# 右指针指向的元素为偶数时,向左移动右指针
while nums[right] % 2 == 0:
right -= 1
# 如果左指针仍在右指针的左侧,则交换两个指针指向的元素
if left < right:
nums[left], nums[right] = nums[right], nums[left]
left += 1
right -= 1
return nums
# 示例用法
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rearranged_nums = rearrange_array(nums)
print(rearranged_nums)
```
在上面的示例中,我们使用了两个指针`left`和`right`。左指针从数组的开头向右移动,右指针从数组的末尾向左移动。当左指针指向的元素为奇数时,左指针向右移动,直到找到一个偶数。当右指针指向的元素为偶数时,右指针向左移动,直到找到一个奇数。然后,交换左右指针指向的元素。重复这个过程,直到左指针超过右指针。最后,返回重新排列后的数组。
阅读全文