Este artigo descreve a implementação do Java do algoritmo de valor máximo para encontrar a soma dos sub-maiores. Compartilhe -o para sua referência, como segue:
Geralmente, C e C ++ são usados com mais frequência na implementação do algoritmo. Abaixo, implementamos algoritmos através da linguagem Java, o que nos faz sentir mais íntimos.
tópico:
Digite uma matriz de modelagem, com números positivos e negativos na matriz.
Um ou mais números inteiros consecutivos em uma matriz formam um subarray, cada subarray tem uma soma.
Encontre o valor máximo da soma de todos os subarrays.
Por exemplo, a matriz de entrada é 1, -2, 3, 10, -4, 7, 2, -5, e o maior subarray é 3, 10, -4, 7, 2,
Portanto, a saída é a soma 18 do subarray.
Código de implementação:
pacote arrdemo; classe pública maxsub {public static void main (string [] args) {// TODO Método gerado automático Stub FindMaxSubarySum1 (); } public static void findMaxSubarysum1 () {// soma é a soma do subarray int sum = 0; // max é a soma máxima do subarray int max = 0; // Posição inicial do subarray máximo int startpos = 0; // Posição final do subarray máximo int e endPos = 0; int [] array = {-1, 2, -3, 12, -5, -1, 9, -2}; for (int i = 0; i <array.length; i ++) {sum+= matriz [i]; // soma se (soma <0) {// se a soma atual for negativa, limpe -a e a posição inicial iniciar a próxima posição da posição = 0; startpos = i + 1; } if (soma> max) {// Se a soma for considerada maior que o máximo anterior, atribua a soma ao max e grave a última posição max = sum; endpos = i + 1; }} System.out.println ("Resultado do teste wulin.com:"); System.out.println ("max:" + max); System.out.println ("startPos:" + startpos + ", endpos:" + (endpos - 1)); }}Resultados em execução:
Para obter mais informações sobre os algoritmos Java, os leitores interessados neste site podem visualizar os tópicos: "Estrutura de dados Java e tutorial de algoritmo", "Resumo das dicas de nó da operação Java Dom", "Resumo de dicas de operação de Java e Operação de Java" e "Resumo de Java cache" Tips "TIPS"
Espero que este artigo seja útil para a programação Java de todos.