Números que aparecen solo una vez en la matriz JZ40

Descripción del Título

Excepto por dos números en una matriz de enteros, los otros números aparecen dos veces. Escriba un programa para encontrar estos dos números que solo aparecen una vez.

//num1,num2分别为长度为1的数组。传出参数
//将num1[0],num2[0]设置为返回结果
public class Solution {
    
    
    public void FindNumsAppearOnce(int [] array,int num1[] , int num2[]) {
    
    
        if (array.length != 0) {
    
    
            int x = 0;
            int count = 1;
            for (int i : array) {
    
    
                x ^= i;
            }
            while ((x & 1) != 1 ){
    
    
                x = x >> 1;
                count++;
            }

            for (int i : array) {
    
    
                if (((i >> (count-1)) & 1) == 1) {
    
    
                    num1[0] ^= i;
                }else {
    
    
                    num2[0] ^= i;
                }
            }
        }

    }

}

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_41620020/article/details/108569623
Recomendado
Clasificación