max=Math.max(max+array[i], array[i]);
res=Math.max(max, res);
public class Solution {
public int FindGreatestSumOfSubArray(int[] array) {
int res = array[0]; //记录当前所有子数组的和的最大值
int max=array[0]; //包含array[i]的连续数组最大值
for (int i = 1; i < array.length; i++) {
max=Math.max(max+array[i], array[i]);
res=Math.max(max, res);
}
return res;
}
}
本文深入探讨了求解子数组最大和的经典算法,通过一个简洁的Java代码示例,展示了如何利用动态规划思想,高效地找到数组中具有最大和的连续子数组。算法的关键在于维护两个变量:一个用于跟踪包含当前元素的最大子数组和,另一个用于记录全局最大子数组和。
374

被折叠的 条评论
为什么被折叠?



