Arrays: Find triplet with minimum sum

Problem Statement:

Given an unsorted array, you need to find 3 elements whose sum is the minimum.

Example:

arr = {-1, 2, 3, -2};
Output: -1

The elements are: -1, -2, 2

The solution in very simple, take 3 variables that will hold minimum, second minimum and third minimum element present in the array and print the sum of these three elements.

Solution in C++

#include <vector>    
#include <algorithm>  
//visit www.ProDeveloperTutorial.com for 450+ solved questions  
#include <iostream>    
#include <queue>

using namespace std;  

void get_min_sum(int arr[] , int n) 
{ 

    int f_min = 99999999;
    int s_min = 99999999;
    int t_min = 99999999; 
      
    for (int i = 0; i < n; i++) { 
        // get the first, second and third min elements 
        if (arr[i] < f_min) { 
            t_min = s_min; 
            s_min = f_min; 
            f_min = arr[i]; 
        } 
        // update second and third min elements 
        else if (arr[i] < s_min) { 
            t_min = s_min; 
            s_min = arr[i]; 
        } 
        else if (arr[i] < t_min) { 
            t_min = arr[i]; 
        } 
    } 
      
   cout<< "The 3 numbers are"<<f_min <<" "<< s_min <<" " << t_min<<". The sum is = "<< f_min + s_min + t_min; 
} 
  

int main()
{
    int arr1[] ={-1, 2, 3, -2};

    get_min_sum(arr1, 4);
}

Output:

The 3 numbers are-2 -1 2. The sum is = -1

 

 

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *