
- 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
Maximum sum alternating subsequence in C++
In this tutorial, we will be discussing a program to find maximum sum alternating subsequence.
For this we will be provided with an array of integers. Our task is to find the maximum sum of an alternating subsequence i.e sequence which is first decreasing, then increasing, then decreasing and so on.
Example
#include<bits/stdc++.h> using namespace std; //returning maximum sum alternating series int maxAlternateSum(int arr[], int n) { if (n == 1) return arr[0]; int dec[n]; memset(dec, 0, sizeof(dec)); int inc[n]; memset(inc, 0, sizeof(inc)); dec[0] = inc[0] = arr[0]; int flag = 0 ; for (int i=1; i<n; i++) { for (int j=0; j<i; j++) { if (arr[j] > arr[i]) { dec[i] = max(dec[i], inc[j]+arr[i]); flag = 1; } else if (arr[j] < arr[i] && flag == 1) inc[i] = max(inc[i], dec[j]+arr[i]); } } int result = INT_MIN; for (int i = 0 ; i < n; i++) { if (result < inc[i]) result = inc[i]; if (result < dec[i]) result = dec[i]; } return result; } int main() { int arr[]= {8, 2, 3, 5, 7, 9, 10}; int n = sizeof(arr)/sizeof(arr[0]); cout << "Maximum sum = " << maxAlternateSum(arr , n ) << endl; return 0; }
Output
Maximum sum = 25
- Related Articles
- Maximum sum alternating subsequence in C++ program
- Maximum Sum Decreasing Subsequence in C++
- Maximum Sum Increasing Subsequence | DP-14 in C++
- Maximum Sum Increasing Subsequence using DP in C++ program
- Maximum Sum Increasing Subsequence\n
- Maximum Sum Increasing Subsequence using Binary Indexed Tree in C++
- Maximum sum subsequence with at-least k distant elements in C++
- Maximum Sum Increasing Subsequence using Binary Indexed Tree in C++ program
- Maximum subsequence sum such that no three are consecutive in C++ Program
- Maximum sum subsequence with at-least k distant elements in C++ program
- Constrained Subsequence Sum in C++
- Maximum subsequence sum such that no three are consecutive
- Sum of Subsequence Widths in C++
- Maximum product of an increasing subsequence in C++
- Maximum product of subsequence of size k in C++

Advertisements