小编Hir*_*esh的帖子

最大连续子数组和的线性时间算法

我一直在解决算法简介 - CLRS中的练习,并遇到了在线性时间内求解最大连续子数组的问题(Q 4.1-5)。请看下面我的解决方案。我一直在网上寻找这项练习的评委,但没有找到。解决这个问题后,当我寻找解决方案时,我发现 kadane 的算法似乎与我的实现不同,而且当所有数字均为负数时,该解决方案也会给出正确的输出。

public static int linearMaxSolve(int[] arr) {
int max = Integer.MIN_VALUE;
int sum = 0;
for (int i : arr) {
    sum += i;
    if (i > sum) {
        sum = i;
    }
    if (sum > max) {
        max = sum;
    }
}
return max;
}
Run Code Online (Sandbox Code Playgroud)

除了向程序输入手动测试用例之外,还有其他方法可以检查该算法的有效性吗?

java algorithm kadanes-algorithm

0
推荐指数
1
解决办法
3659
查看次数

标签 统计

algorithm ×1

java ×1

kadanes-algorithm ×1