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>
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