題目描述:
給定一個整數(shù)數(shù)組 nums ,找到一個具有最大和的連續(xù)子數(shù)組(子數(shù)組最少包含一個元素)馋缅,返回其最大和。
示例:
輸入: [-2,1,-3,4,-1,2,1,-5,4],
輸出: 6
解釋: 連續(xù)子數(shù)組 [4,-1,2,1] 的和最大绢淀,為 6萤悴。
解答:
public static int maxSubArray(int[] nums) {
// 中間結(jié)果初始化 0
int midRs = 0;
// 結(jié)果初始化 nums[0]
int rs = nums[0];
for (int i = 0; i < nums.length; i++) {
// 每次比較加這一個數(shù)的大小,小則取這一個值
midRs = Math.max(midRs + nums[i], nums[i]);
// 如果midRs出現(xiàn)比上次值小時皆的,由rs保存上次的值
rs = Math.max(rs, midRs);
}
return rs;
}