LeetCode Entry

1800. Maximum Ascending Subarray Sum

04.02.2025 easy 2025 kotlin rust

Max increasing subarray sum

1800. Maximum Ascending Subarray Sum easy blog post substack youtube 1.webp

Join me on Telegram

https://t.me/leetcode_daily_unstoppable/885

Problem TLDR

Max increasing subarray sum #easy

Intuition

Use brute-force, two-pointers or running sum.

Approach

  • Rust has a nice chunk_by

Complexity

  • Time complexity: \(O(n)\)

  • Space complexity: \(O(1)\)

Code


    fun maxAscendingSum(nums: IntArray) =
        nums.indices.maxOf { i ->
            var j = i + 1; while (j < nums.size && nums[j] > nums[j - 1]) j++
            nums.slice(i..<j).sum()
        }


    pub fn max_ascending_sum(nums: Vec<i32>) -> i32 {
        nums.chunk_by(|a, b| a < b).map(|c| c.iter().sum()).max().unwrap()
    }


    int maxAscendingSum(vector<int>& n) {
        int r = n[0];
        for (int i = 1, s = n[0]; i < size(n); ++i)
            r = max(r, s = n[i - 1] < n[i] ? s + n[i] : n[i]);
        return r;
    }