Dado um conjunto de inteiros (número positivo com um número negativo), para calcular a soma do número máximo de colunas consecutivas, e retorna a soma.
exemplo:
Entrada: [-2,1, -3,4, -1,2,1, -5,4]
Saída: 6
Explicação: subarray contínuo [4, -1,2,1], e o valor máximo foi de 6.
ideias de resolução de problemas:
Programação Dinâmica: cálculo do índice atual até agora, ea maior subarray contínua, neste momento, e max (no máximo antes do atual elemento subarray +, 0 + elemento atual)
implementação de código:
class Solution {
public int maxSubArray(int[] nums) {
int len=nums.length;
int max=nums[0];
for(int i=1;i<len;++i){
nums[i]+=Math.max(nums[i-1],0);
}
for(int i=0;i<len;++i){
if(max<nums[i]){
max=nums[i];
}
}
return max;
}
}