Compruebe si una array puede encajar en otra array reorganizando los elementos de la array

Dados dos arreglos A y B del mismo tamaño N. Compruebe si el arreglo A puede encajar en el arreglo B. Se dice que un arreglo encaja en otro arreglo si al ordenar los elementos de ambos arreglos, existe una solución tal que el i -ésimo elemento del primer arreglo es menor o igual al i -ésimo elemento del segundo arreglo.
Ejemplos
 

Input : A[] = { 7, 5, 3, 2 }, B[] = { 5, 4, 8, 7 }
Output : YES 
Rearrange the first array to {3, 2, 7, 5} 
Do not rearrange the second array's element. 
After rearranging, all Ai<=Bi. 

Input : A[] = { 7, 5, 3, 2, 5, 105, 45, 10 }, B[] = { 2, 4, 0, 5, 6, 9, 75, 84 }
Output : NO

Enfoque : Ordene ambas arrays y verifique si A i es menor o igual que B i para todos los 0 ≤ i ≤ N. Si en cualquier i -ésima posición A i es mayor que B i devuelve falso, de lo contrario devuelve verdadero. 
A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ Program to check whether an array
// can be fit into another array with given
// condition.
#include <bits/stdc++.h>
using namespace std;
 
// Returns true if the array A can be fit into
// array B, otherwise false
bool checkFittingArrays(int A[], int B[], int N)
{
    // Sort both the arrays
    sort(A, A + N);
    sort(B, B + N);
 
    // Iterate over the loop and check whether every
    // array element of A is less than or equal to
    // its corresponding array element of B
    for (int i = 0; i < N; i++)
        if (A[i] > B[i])
            return false;
 
    return true;
}
 
// Driver Code
int main()
{
    int A[] = { 7, 5, 3, 2 };
    int B[] = { 5, 4, 8, 7 };
    int N = sizeof(A) / sizeof(A[0]);
 
    if (checkFittingArrays(A, B, N))
        cout << "YES";
    else
        cout << "NO";
    return 0;
}

Java

// Java Program to check
// whether an array can
// be fit into another
// array with given
// condition.
import java.io.*;
import java.util.*;
import java.lang.*;
 
class GFG
{
 
// Returns true if the
// array A can be fit
// into array B,
// otherwise false
static boolean checkFittingArrays(int []A,
                                  int []B,
                                  int N)
{
     
    // Sort both the arrays
    Arrays.sort(A);
    Arrays.sort(B);
 
    // Iterate over the loop
    // and check whether every
    // array element of A is
    // less than or equal to
    // its corresponding array
    // element of B
    for (int i = 0; i < N; i++)
        if (A[i] > B[i])
            return false;
 
    return true;
}
 
// Driver Code
public static void main(String[] args)
{
    int A[] = {7, 5, 3, 2};
    int B[] = {5, 4, 8, 7};
    int N = A.length;
     
    if (checkFittingArrays(A, B, N))
        System.out.print("YES");
    else
        System.out.print("NO");
}
}

Python3

# Python3 Program to check whether an array
# can be fit into another array with given
# condition.
 
# Returns true if the array A can be fit into
# array B, otherwise false
def checkFittingArrays(A, B, N):
     
    # Sort both the arrays
    A = sorted(A)
    B = sorted(B)
 
    # Iterate over the loop and check whether
    # every array element of A is less than
    # or equal to its corresponding array
    # element of B
    for i in range(N):
        if (A[i] > B[i]):
            return False
 
    return True
 
# Driver Code
A = [7, 5, 3, 2]
B = [5, 4, 8, 7]
N = len(A)
 
if (checkFittingArrays(A, B, N)):
    print("YES")
else:
    print("NO")
 
# This code is contributed
# by mohit kumar

C#

// C# Program to check
// whether an array can
// be fit into another
// array with given
// condition.
using System;
 
class GFG
{
 
// Returns true if the
// array A can be fit
// into array B,
// otherwise false
static bool checkFittingArrays(int []A,
                               int []B,
                               int N)
{
     
    // Sort both the arrays
    Array.Sort(A);
    Array.Sort(B);
 
    // Iterate over the loop
    // and check whether every
    // array element of A is
    // less than or equal to
    // its corresponding array
    // element of B
    for (int i = 0; i < N; i++)
        if (A[i] > B[i])
            return false;
 
    return true;
}
 
// Driver Code
public static void Main ()
{
    int []A = {7, 5, 3, 2};
    int []B = {5, 4, 8, 7};
    int N = A.Length;
     
    if (checkFittingArrays(A, B, N))
        Console.WriteLine("YES");
    else
        Console.WriteLine("NO");
}
}
 
// This code is contributed
// by anuj_67.

PHP

<?php
// PHP Program to check whether an
// array can be fit into another
// array with given condition.
// Returns true if the array A can
// be fit into array B, otherwise false
function checkFittingArrays($A, $B, $N)
{
    // Sort both the arrays
    sort($A);
    sort($B);
 
    // Iterate over the loop and check
    // whether every array element of
    // A is less than or equal to its
    // corresponding array element of B
    for ($i = 0; $i < $N; $i++)
        if ($A[$i] > $B[$i])
            return false;
 
    return true;
}
 
// Driver Code
$A = array( 7, 5, 3, 2 );
$B = array( 5, 4, 8, 7 );
$N = count($A);
 
if (checkFittingArrays($A, $B, $N))
    echo "YES";
else
    echo "NO";
     
// This code is contributed by shs
?>

Javascript

<script>
// Javascript Program to check
// whether an array can
// be fit into another
// array with given
// condition.
     
    // Returns true if the
// array A can be fit
// into array B,
// otherwise false
    function checkFittingArrays(A, B, N)
    {
     
        // Sort both the arrays
    A.sort(function(a, b){return a - b;});
    B.sort(function(a, b){return a - b;});
   
    // Iterate over the loop
    // and check whether every
    // array element of A is
    // less than or equal to
    // its corresponding array
    // element of B
    for (let i = 0; i < N; i++)
        if (A[i] > B[i])
            return false;
   
    return true;
    }
     
    // Driver Code
    let A = [7, 5, 3, 2];
    let B = [5, 4, 8, 7];
    let N = A.length;
    if (checkFittingArrays(A, B, N))
        document.write("YES");
    else
        document.write("NO");
       
// This code is contributed by unknown2108
</script>
Producción: 

YES

 

Complejidad de tiempo : O (N * logN), donde N es el tamaño de la array.
 

Publicación traducida automáticamente

Artículo escrito por Nishant Tanwar 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 *