
- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures
- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
Find Maximum Sum Strictly Increasing Subarray in C++
Suppose we have an array of n integers. Find the max sum of strictly increasing subarrays. So if the array is like [1, 2, 3, 2, 5, 1, 7], the sum is 8. In this array there are three strictly increasing sub-arrays these are {1, 2, 3}, {2, 5} and {1, 7}. The max sum sub-array is {1, 7}
To solve this problem, we have to keep track of max sum and the current sum. For each element arr[i] if this is larger than arr[i – 1], then we add this to the current sum, otherwise arr[i] is the starting point of another subarray. So we shall update the current sum as array. Before updating current sum, we will update max sum if required.
Example
#include<iostream> using namespace std; int maximum(int a, int b){ return (a>b)?a:b; } int maximum_sum_incr_subarr(int array[] , int n) { int max_sum = 0; int current_sum = array[0] ; for (int i=1; i<n ; i++ ) { if (array[i-1] < array[i]) current_sum = current_sum + array[i]; else { max_sum = maximum(max_sum, current_sum); current_sum = array[i]; } } return max(max_sum, current_sum); } int main() { int arr[] = {1, 2, 3, 2, 5, 1, 7}; int n = sizeof(arr)/sizeof(arr[0]); cout << "Maximum sum : " << maximum_sum_incr_subarr(arr , n); }
Output
Maximum sum : 8
- Related Articles
- Longest subarray which only contains strictly increasing numbers JavaScript
- Maximum Sum Circular Subarray in C++
- Maximum sum bitonic subarray in C++
- Maximum subarray sum modulo m in C++
- Maximum circular subarray sum in C++\n
- Count Strictly Increasing Subarrays in C++
- Make Array Strictly Increasing in C++
- Maximum Subarray Sum with One Deletion in C++
- Maximum Subarray Sum Excluding Certain Elements in C++
- Maximum Size Subarray Sum Equals k in C++
- Maximum subarray sum in O(n) using prefix sum in C++
- Maximum Subarray Sum in a given Range in C++
- Maximum Sum Increasing Subsequence | DP-14 in C++
- Maximum Sum SubArray using Divide and Conquer in C++
- Maximum Subarray Sum Excluding Certain Elements in C++ program

Advertisements