Oferta de Jianzhi 21. Ajuste el orden de la matriz para que los números impares estén delante de los números pares

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

Inserte la descripción de la imagen aquí

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;
    }
}

Supongo que te gusta

Origin blog.csdn.net/cys975900334/article/details/115014347
Recomendado
Clasificación