Maximum Subarray

Description: Given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

Example:

Input: [-2,1,-3,4,-1,2,1,-5,4],
Output: 6
Explanation: [4,-1,2,1] has the largest sum = 6.

Follow up:

If you have figured out the O(n) solution, try coding another solution using the divide and conquer approach, which is more subtle.

Solution(Rust):

impl Solution {
    pub fn max_sub_array(nums: Vec<i32>) -> i32 {
        let mut max = nums[0];
        let mut acc = 0;
        for i in 0..nums.len(){
            acc += nums[i];
            if acc > max {
                max = acc
            }
            if acc < 0 {
                acc = 0
            }
        }
        max
    }
}
Tags:leetcode, Rust