题目描述 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。(测试用例仅做参考,我们会根据代码质量进行评分) 输入描述: 第一行输入整数n。(1<=n<=1000)表示数组大小 第二行输入n个整数a.(1<=n<=100) 输出描述: 输出重排之后的数组。
时间: 2024-04-09 07:29:20 浏览: 102
力扣算法题:和为K的子数组的官方测试用超长数组,长度为20000
以下是一个实现将数组重新排列,使得数组左边为奇数,右边为偶数的示例代码:
```python
n = int(input()) # 输入数组大小
a = list(map(int, input().split())) # 输入数组元素
# 使用双指针进行数组重排
left = 0
right = n - 1
while left < right:
# 左指针指向的元素为奇数时,向右移动左指针
while a[left] % 2 == 1:
left += 1
# 右指针指向的元素为偶数时,向左移动右指针
while a[right] % 2 == 0:
right -= 1
# 如果左指针仍在右指针的左侧,则交换两个指针指向的元素
if left < right:
a[left], a[right] = a[right], a[left]
left += 1
right -= 1
# 输出重排之后的数组
for num in a:
print(num, end=' ')
```
首先,我们通过输入获取数组大小`n`和`n`个整数元素。然后,我们使用双指针方法进行数组重排,将奇数放在左边,偶数放在右边。最后,我们按顺序输出重排后的数组元素。
阅读全文