Les bovins réseau client _ remporte l'offre de jeu de titres - et les plus grands sous-réseaux continus (implémentation Java)

le lien du sujet

https://www.nowcoder.com/practice/459bd355da1549fa8a49e350bf3df484?tpId=13&tqId=11183&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

 

idées de résolution de problèmes:

dp idées (programmation dynamique), utilisez le tableau de sauvegarde permettra d'économiser la solution optimale pour chaque étape de l'emplacement correspondant, l'étape suivante peut être appelée directement sur les résultats de l'étape

équation de transition d'état: (sauvegarde temporaire est tableaux, arr tableau original) - il est populaire, ne fait face à chaque option sélectionnée, si elle est sélectionnée, au moins la valeur actuelle soit supérieure au résultat, sinon solution optimale actuelle est l'élément en cours elle-même

? Temp [i] = Temp [i-1] + arr [i]> arr [i] température [i-1] + arr [i]: arr [i];

 

Voici le code source

code 1.ac retourne le maximum que

publique  int FindGreatestSumOfSubArray ( int [] arr) {
         si (arr.length == 0 || arr == NULL ) retourne 0 ;
        int temp = [] nouveau  int [arr.length];
        int = max arr [0] ; 
        Temp [ 0] = arr [0 ];
        pour ( int i = 1; i <arr.length; ++ i) { 
            Temp [i] = Temp [i-1] + arr [i]> arr [i] température [i-1] +? arr [i ]: arr [i];
            si (temp [i]> max) max = température [i]; 
        } 
        Retour max;
    }

 

2. Retour Un ensemble optimal de butées (le premier élément est une matrice de transition d'état, le second terme est la solution optimale à ce jour)

publique  int [] [] FindGreatestSumOfSubArray ( int [] arr) {
         si (arr.length == 0 || arr == NULL ) retour  nul ;
        int [] [] temp = nouveau  int [arr.length] [2 ];
        int = max arr [0 ]; 
        Température [ 0] [1] = arr [0 ]; 
        Température [ 0] [0] = arr [0 ];
        pour ( int i = 1; i <arr.length; ++ i) { 
            Temp [i] [ 0] = Temp [i-1] [0] + arr [i]> arr [i] température [i-? 1] [0] + arr [i]: arr [i];
            si(temp [i] [0]> max) max = température [i] [0 ]; 
            Temp [i] [ 1] = max; 
        } 
        Retour temporaire; 
    }

 

Code a été ac

Je espère tout le monde peut aider à

au-dessus

Je suppose que tu aimes

Origine www.cnblogs.com/lavender-pansy/p/12465242.html
conseillé
Classement