
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Maximum Possible Difference of Two Subsets of an Array in C++
In this tutorial, we will be discussing a program to find maximum possible difference of two subsets of an array
For this we will be provided with an array containing one or two instances of few random integers. Our task is to create two subsets of that array such that the difference of their sum is maximum and no subset contains repetitive numbers.
Example
#include <bits/stdc++.h> using namespace std; //finding maximum subset difference int maxDiff(int arr[], int n) { int SubsetSum_1 = 0, SubsetSum_2 = 0; for (int i = 0; i <= n - 1; i++) { bool isSingleOccurance = true; for (int j = i + 1; j <= n - 1; j++) { if (arr[i] == arr[j]) { isSingleOccurance = false; arr[i] = arr[j] = 0; break; } } if (isSingleOccurance) { if (arr[i] > 0) SubsetSum_1 += arr[i]; else SubsetSum_2 += arr[i]; } } return abs(SubsetSum_1 - SubsetSum_2); } int main() { int arr[] = { 4, 2, -3, 3, -2, -2, 8 }; int n = sizeof(arr) / sizeof(arr[0]); cout << "Maximum Difference = " << maxDiff(arr, n); return 0; }
Output
Maximum Difference = 20
Advertisements