2341. ¿Cuántos pares puede formar una matriz-estadísticas de datos?

2341. ¿Cuántos pares puede formar una matriz?

Se le proporciona una matriz de números enteros con índices que comienzan desde 0. En un solo paso, puede realizar los siguientes pasos:

从 nums 选出 两个 相等的 整数
从 nums 中移除这两个整数,形成一个 数对

Realice esta operación en números varias veces hasta que no pueda continuar.

Devuelve una respuesta de matriz de enteros que comienza en 0 y de longitud 2 como respuesta, donde respuesta[0] es el número de pares formados y respuesta[1] es el número de enteros que quedan después de realizar tantas operaciones anteriores con números como sea posible. .

Ejemplo 1:

Entrada: nums = [1,3,2,1,3,2,2]
Salida: [3,1]
Explicación:
nums[0] y nums[3] forman un par de números y se eliminan de nums, nums = [ 3,2,3,2,2] .
nums[0] y nums[2] forman un par de números y se eliminan de nums, nums = [2,2,2].
nums[0] y nums[1] forman un par de números y se eliminan de nums, nums = [2].
No se pueden formar más parejas. Se forman un total de 3 pares de números, quedando 1 número en nums.

Ejemplo 2:

Entrada: nums = [1,1]
Salida: [1,0]
Explicación: nums[0] y nums[1] forman un par de números y se eliminan de nums, nums = [].
No se pueden formar más parejas. Se forma un total de 1 par de números, quedando 0 números en nums.

Ejemplo 3:

Entrada: nums = [0]
Salida: [0,1]
Explicación: No se puede formar un par de números, queda 1 número en nums.

Esta pregunta es relativamente simple, el código de solución es el siguiente:



/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* numberOfPairs(int* nums, int numsSize, int* returnSize){
    
    
    int count[101];
    int * re=(int *)malloc(sizeof(int)*2);
    *returnSize=2;
    for(int i=0;i<101;i++){
    
    
        count[i]=0;
    }
    re[0]=0;
    re[1]=0;
    for(int i=0;i<numsSize;i++){
    
    
        count[nums[i]]++;
        if(count[nums[i]]==2){
    
    
            re[0]++;
             re[1]--;
             count[nums[i]]=0;
        }
        if(count[nums[i]]==1){
    
    
            re[1]++;
        }
    }
   return re;

}

Supongo que te gusta

Origin blog.csdn.net/weixin_43327597/article/details/133268407
Recomendado
Clasificación