[JavaScript] N números enteros únicos cuya suma es 0

Dado un número entero n, devuelva cualquier matriz que consta de n números enteros diferentes, y la suma de estos n números es 0.

Ejemplo 1:

Entrada: n = 5
Salida: [-7, -1,1,3,4]
Explicación: Estas matrices también son correctas [-5, -1,1,2,3], [-3, -1,2, -2,4].
Ejemplo 2:

Entrada: n = 3
Salida: [-1,0,1]
Ejemplo 3:

Entrada: n = 1
Salida: [0]

Recordatorio:
1 <= n <= 1000
Fuente de la pregunta: Likou 1304

La primera reacción, una positiva y otra negativa, suma 0 al número impar y está bien.
Las posibles soluciones son:

n = 1, [0]
n = 2, [-1, 1]
n = 3, [-2, 0, 2]
n = 4, [-3, -1, 1, 3]
n = 5, [-4, -2, 0, 2, 4]

Esta solución se compone de una fórmula:

ret[i] = i * 2 - n + 1;

Entonces el código es el siguiente:

/**
 * @param {number} n
 * @return {number[]}
 */
var sumZero = function(n) {
    
    
    var arr=[];
    var i;
    for(i=0;i<n;i++){
    
    
         arr[i] = i * 2 - n + 1;
    }
    return arr;
};

Supongo que te gusta

Origin blog.csdn.net/weixin_42345596/article/details/104966036
Recomendado
Clasificación