20.调整数组顺序使奇数位于偶数前面
输入一个整数数组,实现一个函数来调整该数组中数字的顺序。
使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分。
数据范围:
- 数组长度 [0,100]。
- 数组内元素取值范围 [0,100]。
样例:
输入:[1,2,3,4,5]
输出: [1,3,5,2,4]
代码:
class Solution {
public void reOrderArray(int[] array) {
//初始化双指针
//l从数组头部开始,寻找偶数
//r从数组尾部开始,寻找奇数
int l = 0,r = array.length-1;
//当左指针小于右指针时循环
while(l<r){
//从左往右找到第一个偶数
while(l<array.length&&array[l]%2!=0)l++;
//从右往左找到第一个奇数
while(r>=0&&array[r]%2==0)r--;
//如果左指针在右指针左侧,交换这两个元素
if(l<r){
int temp = array[l];
array[l] = array[r];
array[r] = temp;
}
}
}
}