/**
* 算法1:三层嵌套
* @param arr
* @return
*/
private static int maxSubSum1(int[] arr) {
int maxSum = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = i; j < arr.length; j++) {
int thisSum = 0;
for (int k = i; k <= j; k++) {
thisSum += arr[k];
}
if (thisSum > maxSum) {
maxSum = thisSum;
}
}
}
return maxSum;
}
/**
* 算法2:两层嵌套
* @param arr
* @return
*/
private static int maxSubSum2(int[] arr) {
int maxSum = 0;
for (int i = 0; i < arr.length; i++) {
int thisSum = 0;
for (int j = i; j < arr.length; j++) {
thisSum += arr[j];
if (thisSum > maxSum) {
maxSum = thisSum;
}
}
}
return maxSum;
}
/**
* 算法2:无嵌套
* @param arr
* @return
*/
private static int maxSubSum3(int[] arr) {
int maxSum = 0, thisSum = 0;
for (int i = 0; i < arr.length; i++) {
thisSum += arr[i];
if (thisSum > maxSum) {
maxSum = thisSum;
} else if (thisSum < 0) {
thisSum = 0;
}
}
return maxSum;
}最大子序列和问题
最新推荐文章于 2026-01-05 22:36:07 发布
本文深入探讨了三种不同层次嵌套的算法优化策略,从三层嵌套到无嵌套,旨在提高算法效率并减少计算复杂度。通过详细分析每种算法的实现过程和性能对比,揭示了在不同场景下选择合适算法的重要性。
1566

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



