Problem Brief

Pairs

FULLTIMEINTERNOA

Consider two arrays of integers, a[n] and b[n]. What is the maximum number of pairs that can be formed where a[i] > b[j]? Each element can be in no more than one pair.

Find the maximum number of such possible pairs.

Function Description

Complete the function findNumOfPairs in the editor below.

findNumOfPairs has the following parameters:

  1. int a[n]: an array of integers
  2. int b[n]: an array of integers

Returns

int: the maximum number of pairs possible

1Example 1

Input
a = [1, 2, 3], b = [1, 2, 1]
Output
2
Explanation
Two ways the maximum number of pairs can be selected:
  • {a[1], b[0]}={2, 1} and {a[2], b[2]}={3, 1} are valid pairs.
  • {a[1], b[0]}={2, 1} and {a[2], b[1]}={3, 2} are valid pairs.
  • No more than 2 pairs can be formed, so return 2.

    2Example 2

    Input
    a = [1, 2, 3, 4, 5], b = [6, 6, 1, 1, 1]
    Output
    3
    Explanation
    Valid paris are {a[1], b[2]}, {a[2], b[3]}, {a[3], b[4]} or {2, 1}, {3, 1}, {4, 1}

    3Example 3

    Input
    a = [2, 3, 3], b = [3, 4, 5]
    Output
    0
    Explanation
    Since all the elements of b are greater than each element of a, no pair can be formed T~T

    Constraints

    Limits and guarantees your solution can rely on.

    • 1 <= n <= 10^5
    • 1 <= a[i] <= 10^9
    • 1 <= b[i] <= 10^9
    public int findNumOfPairs(int[] a, int[] b) {
      // write your code here
    }
    
    Input

    a

    [1, 2, 3]

    b

    [1, 2, 1]

    Output

    2

    Sign in to submit your solution.