GeeksforGeeks App
Open App
Browser
Continue

# Check whether an array can be fit into another array rearranging the elements in the array

Given two arrays A and B of the same size N. Check whether array A can be fit into array B. An array is said to fit into another array if by arranging the elements of both arrays, there exists a solution such that the ith element of the first array is less than or equal to ith element of the second array.

Examples

```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```
Recommended Practice

Approach: Sort both the arrays and check whether Ai is less than or equal to Bi for all 0 ≤ i ≤ N. If at any ith position Ai is greater than Bi return false, otherwise return true.

Steps to solve the problem:

• Sort array A in non-decreasing order.
• Sort array B in non-decreasing order.
•  For each element i from 0 to N-1 do the following:
•  If A[i] > B[i], return false.
• If the loop completes without returning false, return true.

Below is the implementation of the above approach:

## C++

 `// C++ Program to check whether an array``// can be fit into another array with given``// condition.``#include ``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

 ` ``\$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

 ``

Output

`YES`

Time Complexity: O(N * logN), where N is the size of the array.
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up