Skip to content
Related Articles

Related Articles

Improve Article
Smallest Pair Sum in an array
  • Difficulty Level : Basic
  • Last Updated : 10 May, 2021

Given an array of distinct integers arr[], the task is to find a pair which has the minimum sum and print the sum.
Examples: 
 

Input: arr[] = {1, 2, 3} 
Output:
The pair (1, 2) will have the minimum sum pair i.e. 1 + 2 = 3
Input: arr[] = {3, 5, 6, 2} 
Output:
 

 

Approach: 
 

  • Find the minimum element from the array and store it in min.
  • Find the second minimum element from the array and store it in secondMin.
  • Print min + secondMin.

Below is the implementation of the above approach:
 



C++




// C++ program to print the sum of the minimum pair
#include <bits/stdc++.h>
using namespace std;
 
// Function to return the sum of
// the minimum pair from the array
int smallest_pair(int a[], int n)
{
    int min = INT_MAX, secondMin = INT_MAX;
    for (int j = 0; j < n; j++) {
 
        // If found new minimum
        if (a[j] < min) {
 
            // Minimum now becomes second minimum
            secondMin = min;
 
            // Update minimum
            min = a[j];
        }
 
        // If current element is > min and < secondMin
        else if ((a[j] < secondMin) && a[j] != min)
 
            // Update secondMin
            secondMin = a[j];
    }
 
    // Return the sum of the minimum pair
    return (secondMin + min);
}
 
// Driver code
int main()
{
    int arr[] = { 1, 2, 3 };
    int n = sizeof(arr) / sizeof(arr[0]);
 
    cout << smallest_pair(arr, n);
 
    return 0;
}

Java




// Java program to print the sum
// of the minimum pair
import java .io.*;
 
class GFG
{
// Function to return the sum of
// the minimum pair from the array
static int smallest_pair(int[] a, int n)
{
    int min =  Integer.MAX_VALUE, secondMin =  Integer.MAX_VALUE;
    for (int j = 0; j < n; j++)
    {
 
        // If found new minimum
        if (a[j] < min)
        {
 
            // Minimum now becomes second minimum
            secondMin = min;
 
            // Update minimum
            min = a[j];
        }
 
        // If current element is > min and < secondMin
        else if ((a[j] < secondMin) && a[j] != min)
 
            // Update secondMin
            secondMin = a[j];
    }
 
    // Return the sum of the minimum pair
    return (secondMin + min);
}
 
// Driver code
public static void main(String[] args)
{
    int[] arr = { 1, 2, 3 };
    int n = arr.length;
 
    System.out.println(smallest_pair(arr, n));
}
}
 
// This code is contributed
// by inder_verma

Python3




# Python3 program to print the
# sum of the minimum pair
import sys
 
# Function to return the sum of
# the minimum pair from the array
def smallest_pair(a, n) :
     
    min = sys.maxsize
    secondMin = sys.maxsize
     
    for j in range(n) :
 
        # If found new minimum
        if (a[j] < min) :
 
            # Minimum now becomes
            # second minimum
            secondMin = min
 
            # Update minimum
            min = a[j]
         
        # If current element is > min
        # and < secondMin
        elif ((a[j] < secondMin) and
               a[j] != min) :
 
            # Update secondMin
            secondMin = a[j]
     
    # Return the sum of the minimum pair
    return (secondMin + min)
 
# Driver code
if __name__ == "__main__" :
 
    arr = [ 1, 2, 3 ]
    n = len(arr)
 
    print(smallest_pair(arr, n))
 
# This code is contributed by Ryuga

C#




// C# program to print the sum
// of the minimum pair
using System;
 
class GFG
{
// Function to return the sum of
// the minimum pair from the array
static int smallest_pair(int[] a, int n)
{
    int min = int.MaxValue, secondMin = int.MaxValue;
    for (int j = 0; j < n; j++)
    {
 
        // If found new minimum
        if (a[j] < min)
        {
 
            // Minimum now becomes second minimum
            secondMin = min;
 
            // Update minimum
            min = a[j];
        }
 
        // If current element is > min and < secondMin
        else if ((a[j] < secondMin) && a[j] != min)
 
            // Update secondMin
            secondMin = a[j];
    }
 
    // Return the sum of the minimum pair
    return (secondMin + min);
}
 
// Driver code
public static void Main()
{
    int[] arr = { 1, 2, 3 };
    int n = arr.Length;
 
    Console.Write(smallest_pair(arr, n));
}
}
 
// This code is contributed
// by Akanksha Rai

PHP




<?php
// PHP program to print the sum
// of the minimum pair
 
// Function to return the sum of
// the minimum pair from the array
function smallest_pair($a, $n)
{
    $min = PHP_INT_MAX;
    $secondMin = PHP_INT_MAX;
    for ($j = 0; $j < $n; $j++)
    {
 
        // If found new minimum
        if ($a[$j] < $min)
        {
 
            // Minimum now becomes
            // second minimum
            $secondMin = $min;
 
            // Update minimum
            $min = $a[$j];
        }
 
        // If current element is > min
        // and < secondMin
        else if (($a[$j] < $secondMin) &&
                  $a[$j] != $min)
 
            // Update secondMin
            $secondMin = $a[$j];
    }
 
    // Return the sum of the minimum pair
    return ($secondMin + $min);
}
 
// Driver code
$arr = array( 1, 2, 3 );
$n = sizeof($arr);
echo smallest_pair($arr, $n);
 
// This code is contributed by ajit
?>

Javascript




<script>
 
    // Javascript program to print the sum
    // of the minimum pair
     
    // Function to return the sum of
    // the minimum pair from the array
    function smallest_pair(a, n)
    {
        let min = Number.MAX_VALUE,
        secondMin = Number.MAX_VALUE;
        for (let j = 0; j < n; j++)
        {
 
            // If found new minimum
            if (a[j] < min)
            {
 
                // Minimum now becomes second minimum
                secondMin = min;
 
                // Update minimum
                min = a[j];
            }
 
            // If current element is > min
            // and < secondMin
            else if ((a[j] < secondMin) &&
                      a[j] != min)
 
                // Update secondMin
                secondMin = a[j];
        }
 
        // Return the sum of the minimum pair
        return (secondMin + min);
    }
     
    let arr = [ 1, 2, 3 ];
    let n = arr.length;
   
    document.write(smallest_pair(arr, n));
     
</script>
Output: 
3

 

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with industry experts, please refer DSA Live Classes




My Personal Notes arrow_drop_up
Recommended Articles
Page :