All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0001_0100.s0053_maximum_subarray.Solution.rs Maven / Gradle / Ivy

// #Medium #Top_100_Liked_Questions #Top_Interview_Questions #Array #Dynamic_Programming
// #Divide_and_Conquer #Data_Structure_I_Day_1_Array #Dynamic_Programming_I_Day_5
// #Udemy_Famous_Algorithm #Big_O_Time_O(n)_Space_O(1)
// #2024_09_06_Time_7_ms_(89.94%)_Space_3.3_MB_(6.92%)

impl Solution {
    pub fn max_sub_array(nums: Vec) -> i32 {
        let mut maxi = i32::MIN;
        let mut sum = 0;
        for &num in nums.iter() {
            // calculating sub-array sum
            sum += num;
            maxi = maxi.max(sum);
            // if the sum is negative, reset it to 0
            if sum < 0 {
                sum = 0;
            }
        }
        maxi
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy