42. Un subconjunto continua y las preguntas máxima cara

Ingrese una matriz de enteros, la matriz tiene un negativo positivo, pero también. Uno o matriz de enteros más continua compuesta de un subconjunto. Buscando el máximo de todos los sub-series y.

Requiere tiempo complejidad es O (n).

 

Ejemplo 1:

De entrada: nums = [-2,1, -3,4, -1,2,1, -5,4]
de salida: 6
Explicación: subarreglo continua [4, -1,2,1], y el más, 6.

 

consejos:

. 1 <= arr.Length <= 10. 5 ^
-100 <= ARR [I] <= 100
Nota: Los mismos presentan problemas de título 53 y la estación maestra: https: //leetcode-cn.com/problems/maximum-subarray/

Ideas de resolución de problemas (programación dinámica):

max: el máximo valor y la sub-serie, el valor inicial del primer elemento, suma: la corriente sub-serie y el valor inicial del primer elemento.

A través de la matriz, el valor actual de la suma se determina, y si es inferior a 0, el elemento actual desde el principio de nuevo acumulada, y actualiza los valores de max

la implementación del código:

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int len=nums.size();
        int max=nums[0];
        int sum=max;
        for(int i=1;i<len;++i){
            if(sum<0){
                sum=0;
            }
            sum+=nums[i];
            if(max<sum){
                max=sum;
            }
        }
        return max;
    }
};

 

Publicados 253 artículos originales · elogios ganado 15 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/junjunjiao0911/article/details/104748692
Recomendado
Clasificación