rustgym/leetcode/
_53_maximum_subarray.rs

1struct Solution;
2
3impl Solution {
4    fn max_sub_array(nums: Vec<i32>) -> i32 {
5        let mut prev = 0;
6        let mut max = std::i32::MIN;
7        let n = nums.len();
8        for i in 0..n {
9            prev = nums[i].max(prev + nums[i]);
10            max = max.max(prev);
11        }
12        max
13    }
14}
15
16#[test]
17fn test() {
18    let nums = vec![-2, 1, -3, 4, -1, 2, 1, -5, 4];
19    assert_eq!(Solution::max_sub_array(nums), 6);
20    let nums = vec![-1];
21    assert_eq!(Solution::max_sub_array(nums), -1);
22    let nums = vec![1];
23    assert_eq!(Solution::max_sub_array(nums), 1);
24}