js suma máxima de subarreglo

Dada una matriz de números enteros, busque una submatriz continua con la suma más grande (la submatriz contiene al menos un elemento) y devuelva su suma más grande.

Un subarreglo es una parte contigua de un arreglo.

Ejemplo 1:

Entrada: nums = [-2,1,-3,4,-1,2,1,-5,4]
Salida: 6
Explicación: La suma de subarreglos consecutivos [4,-1,2,1] es la mayor , que es 6.

Ejemplo 2:

entrada: números = [1]
salida: 1

Ejemplo 3:

Entrada: números = [5,4,-1,7,8]
Salida: 23

pista:

    1 <= números.longitud <= 105
    -104 <= números[i] <= 104

Avanzado: si ha implementado una solución con complejidad O(n), intente resolverla con un método más sofisticado de divide y vencerás.

No se puede pasar el caso de uso

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
// 1.去除数组中重复的元素
    let setNums = new Set(nums)
    let arr = [...setNums]

    // 2.获取连续和最大的数值
    arr.sort()
    let max = 0
    let thisMax = 0
    for (var i = 0; i < arr.length; i++) {
        thisMax += arr[i];
        if (thisMax < arr[i]) {
            thisMax = arr[i]
        }
        if (thisMax > max) {
            max = thisMax
        }
    }
    // console.log(arr, max)
    return max
};

 

Supongo que te gusta

Origin blog.csdn.net/weixin_38128649/article/details/129603654
Recomendado
Clasificación