Problem · Sorting
EasyJPMorgan ChaseFULLTIMEINTERNOA

Problem statement

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

findNumOfPairs(a: int[], b: int[]) → int

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

Examples

Example 1

a = [1, 2, 3]b = [1, 2, 1]return = 2
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.

    Example 2

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

    Example 3

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

    Constraints

    • 1 <= n <= 10^5
    • 1 <= a[i] <= 10^9
    • 1 <= b[i] <= 10^9

    More JPMorgan Chase problems

    drafts saved locally
    public int findNumOfPairs(int[] a, int[] b) {
      // write your code here
    }
    
    a[1, 2, 3]
    b[1, 2, 1]
    expected2
    checking account