Oferta de Jianzhi 21. Ajuste el orden de la matriz para que los números impares estén delante de los números pares
Descripción del Título
Ideas para resolver problemas
Puntero doble
nums[0...oddIndex]
Almacene números impares, nums[evenIndex...nums.length - 1]
almacene números pares
class Solution {
public int[] exchange(int[] nums) {
if (nums == null || nums.length == 0) return nums;
//双指针,nums[0...oddIndex]存奇数,nums[evenIndex...nums.length - 1]存偶数
int oddIndex = 0, evenIndex = nums.length - 1;
while (oddIndex < evenIndex) {
//如果是偶数的话,那就交换
if ((nums[oddIndex] & 0x01) == 0) {
int temp = nums[oddIndex];
nums[oddIndex] = nums[evenIndex];
nums[evenIndex] = temp;
evenIndex--; //偶数指针移动
} else {
//如果是奇数的话,不用交换,直接移动指针
oddIndex++;
}
}
return nums;
}
}