連続する列の最大数の和を見つけるために、整数のアレイ(負の数と正の数)で与えられ、その和を返します。
例:
入力:[-2,1、-3,4、-1,2,1、-5,4]
出力:6
説明:連続サブアレイ[4、-1,2,1]であり、最大値は6でした。
問題解決のアイデア:
これまでに現在のインデックスを計算し、この時の最大連続部分配列、および最大(現在の要素のサブアレイ+前の最大、0 +現在の要素):動的計画
コードの実装:
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;
}
}