[Prefijo y] [código de leet] [Simple] 724. Encuentra el índice central de la matriz

tema:

Dados los números de matriz de números enteros, escriba un método que devuelva el "índice central" de la matriz.

El índice central de la matriz es un índice de la matriz y la suma de todos los elementos de la izquierda es igual a la suma de todos los elementos de la derecha.

Si el índice central no existe en la matriz, se devuelve -1. Si la matriz tiene varios índices centrales, se debe devolver el más cercano a la izquierda.

Nota: El índice central puede aparecer en ambos extremos de la matriz.

Ejemplo:

Entrada: nums = [1, 7, 3, 6, 5, 6]
Salida: 3
Explicación: El
índice central es 3.
La suma de los números de la izquierda (1 + 7 + 3 = 11) y la
suma de los números de la derecha (5 + 6 = 11) son iguales.

Dirección del título original:

724. Encuentra el índice central de la matriz.

Ideas de resolución de problemas:

Usa prefijos e ideas para resolver.

  • Primero encuentre la suma de todos los números en la matriz;
  • Atraviese la matriz, registre la suma izquierda (suma del prefijo) de todos los números a la izquierda del subíndice actual y calcule la suma derecha de todos los números a la derecha.

código c:

int pivotIndex(int* nums, int numsSize){
    int sum = 0; // 整个数组的和
    for (int i = 0; i < numsSize; i++) sum += nums[i];
    int leftsum = 0; // 左侧数字之和
    for (int i = 0; i < numsSize; i++) {
        int rightsum = sum - nums[i] - leftsum; // 右侧数字之和
        if (leftsum == rightsum) return i;
        leftsum += nums[i];
    }
    return -1;
}

 

Supongo que te gusta

Origin blog.csdn.net/hbuxiaoshe/article/details/114271397
Recomendado
Clasificación