Mayor número que se puede formar a partir de un par en un Array dado

Dada una array arr[] , la tarea es encontrar el número más grande que se puede formar a partir de un par en la array dada.
Ejemplos: 
 

Entrada: arr[] = { 3, 1, 9, 2 } 
Salida: 93 
El par (3, 9) conduce a la formación del número máximo 93
Entrada: arr[] = { 23, 14, 16, 25, 3, 9 } 
Salida: 2523 
El par (23, 25) conduce a la formación del número máximo 2523 
 

Enfoque: La idea es formar todos los pares posibles de la array . Luego, para cada par X e Y , únalos como XY e YX y saque el máximo de todos esos pares. 
 

para cada posible en la array (X, Y) respuesta = max(respuesta, XY, YX)
 

A continuación se muestra la implementación del enfoque anterior:
 

C++

// C++ implementation to find the
// greatest number from the
// given pairs of the array
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the greatest
// number formed from the pairs
string getNumber(int a, int b)
{
    string X = to_string(a);
    string Y = to_string(b);
 
    // first append Y at
    // the end of X
    string XY = X + Y;
 
    // then append X at
    // the end of Y
    string YX = Y + X;
 
    // Now see which of the
    // two formed numbers
    // is greater than other
    return XY > YX ? XY : YX;
}
 
// Function to find pairs from array
void printMaxPair(int arr[], int n)
{
    int largest = INT_MIN;
 
    // Iterate through all pairs
    for (int i = 0; i < n; i++)
        for (int j = i + 1; j < n; j++) {
            int number = stoi(
                getNumber(arr[i], arr[j]));
            largest = max(largest, number);
        }
    cout << largest;
}
 
// Driver code
int main()
{
    int a[] = { 23, 14, 16, 25, 3, 9 };
    int n = sizeof(a) / sizeof(a[0]);
    printMaxPair(a, n);
    return 0;
}

Java

// Java implementation to find the
// greatest number from the
// given pairs of the array
import java.util.*;
 
class GFG{
 
// Function to find the greatest
// number formed from the pairs
static String getNumber(int a, int b)
{
    String X = Integer.toString(a);
    String Y = Integer.toString(b);
 
    // First append Y at
    // the end of X
    String XY = X + Y;
 
    // Then append X at
    // the end of Y
    String YX = Y + X;
 
    // Now see which of the
    // two formed numbers
    // is greater than other
    return XY.compareTo(YX) > 0 ? XY : YX;
     
}
 
// Function to find pairs from array
static void printMaxPair(int arr[], int n)
{
    int largest = Integer.MIN_VALUE;
 
    // Iterate through all pairs
    for(int i = 0; i < n; i++)
       for(int j = i + 1; j < n; j++)
       {
          int number = Integer.parseInt(getNumber(arr[i],
                                                  arr[j]));
          largest = Math.max(largest, number);
       }
       System.out.println(largest);
}
 
// Driver code
public static void main(String[] args)
{
    int a[] = { 23, 14, 16, 25, 3, 9 };
    int n = a.length;
     
    printMaxPair(a, n);
}
}
 
// This code is contributed by offbeat

Python3

# Python3 implementation to find the
# greatest number from the
# given pairs of the array
import sys;
 
# Function to find the greatest
# number formed from the pairs
def getNumber(a, b):
 
    X = str(a);
    Y = str(b);
 
    # first append Y at
    # the end of X
    XY = X + Y;
 
    # then append X at
    # the end of Y
    YX = Y + X;
 
    # Now see which of the
    # two formed numbers
    # is greater than other
    if(XY > YX):
        return XY;
    else:
        return YX;
 
# Function to find pairs from array
def printMaxPair(arr, n):
 
    largest = -sys.maxsize - 1;
 
    # Iterate through all pairs
    for i in range(0, n):
        for j in range(i + 1, n):
            number = int(getNumber(arr[i],
                                   arr[j]));
            largest = max(largest, number);
         
    print(largest);
 
# Driver code
a = [ 23, 14, 16, 25, 3, 9 ];
n = len(a);
printMaxPair(a, n);
 
# This code is contributed by Code_Mech

C#

// C# implementation to find the
// greatest number from the
// given pairs of the array
using System;
 
class GFG{
 
// Function to find the greatest
// number formed from the pairs
static String getNumber(int a, int b)
{
    String X = a.ToString();
    String Y = b.ToString();
 
    // First append Y at
    // the end of X
    String XY = X + Y;
 
    // Then append X at
    // the end of Y
    String YX = Y + X;
 
    // Now see which of the
    // two formed numbers
    // is greater than other
    return XY.CompareTo(YX) > 0 ? XY : YX;
     
}
 
// Function to find pairs from array
static void printMaxPair(int []arr, int n)
{
    int largest = int.MinValue;
 
    // Iterate through all pairs
    for(int i = 0; i < n; i++)
       for(int j = i + 1; j < n; j++)
       {
          int number = Int32.Parse(getNumber(arr[i],
                                             arr[j]));
          largest = Math.Max(largest, number);
       }
       Console.WriteLine(largest);
}
 
// Driver code
public static void Main(String[] args)
{
    int []a = { 23, 14, 16, 25, 3, 9 };
    int n = a.Length;
     
    printMaxPair(a, n);
}
}
 
// This code is contributed by Amit Katiyar

Javascript

<script>
 
// Javascript implementation to find the
// greatest number from the
// given pairs of the array
 
// Function to find the greatest
// number formed from the pairs
function getNumber(a, b)
{
    var X = a.toString();
    var Y = b.toString();
 
    // first append Y at
    // the end of X
    var XY = X + Y;
 
    // then append X at
    // the end of Y
    var YX = Y + X;
 
    // Now see which of the
    // two formed numbers
    // is greater than other
    return XY > YX ? XY : YX;
}
 
// Function to find pairs from array
function printMaxPair(arr, n)
{
    var largest = -100000000;
 
    // Iterate through all pairs
    for (var i = 0; i < n; i++)
        for (var j = i + 1; j < n; j++) {
            var number = parseInt(
                getNumber(arr[i], arr[j]));
            largest = Math.max(largest, number);
        }
    document.write( largest);
}
 
// Driver code
var a = [ 23, 14, 16, 25, 3, 9];
var n = a.length;
printMaxPair(a, n);
 
</script>
Producción: 

2523

 

Complejidad temporal: O(n 2 )

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por spp____ y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *