rustgym/leetcode/
_53_maximum_subarray.rs1struct 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}