#algorithm #sum #max #list #finds #subarray

max-subarray-sum

在列表中查找最大子数组和

1 个不稳定版本

0.1.7 2021年7月31日
0.1.6 2021年7月31日

#2409 in 算法

MIT 许可证

5KB

max_subarray_sum

在列表中查找最大子数组和。如果有多个这样的子数组,则只选择第一个。

该算法的时间复杂度为 O(N),空间复杂度为 O(1)

版本说明:已修复先前版本中的一些模块化问题。

快速入门

use max_subarray_sum::interface::Elements;

fn main() {
    let list = vec![-2, -3, 4, -1, -2, 1, 5, -3];

    //Or you can use an array instead:
    let list = [-2, -3, 4, -1, -2, 1, 5, -3];

    let elements = Elements::new(&mut list);

    let max_sum = elements.find_max_sum().result();

    assert_eq!(7, max_sum);
}

lib.rs:

max_subarray_sum

在列表中查找最大子数组和。这也称为最大连续子数组和。如果有多个这样的子数组,则只选择第一个。

该算法的时间复杂度为 O(N),空间复杂度为 O(1)

快速入门

use max_subarray_sum::Elements;

let list = vec![-2, -3, 4, -1, -2, 1, 5, -3];

//Or you can use an array instead:
let list = [-2, -3, 4, -1, -2, 1, 5, -3];

let elements = Elements::new(&mut list);

let max_sum = elements.find_max_sum().result();

assert_eq!(7, max_sum);

无运行时依赖