FastPrepFastPrep
Problem Brief

Three Partition Array

PHONE SCREEN
See Microsoft online assessment and hiring insights

Given an array and a range [lowVal, highVal], partition the array into three parts:

  • All elements smaller than lowVal come first.
  • All elements in the range [lowVal, highVal] come next.
  • All elements greater than highVal come last.
  • Additionally: If lowVal and highVal exist in the array, ensure that lowVal appears before highVal in the final result. The relative order of elements within each group doesn't matter.

    Function Description

    Complete the function threePartitionArray in the editor.

    threePartitionArray has the following parameters:

    1. int arr[]: an array of integers
    2. int lowVal: an integer representing the lower bound of the range
    3. int highVal: an integer representing the upper bound of the range

    halo frenz - you might want to checkout lc75. They said that these 2 questions are relevant :)

    1Example 1

    Input
    arr = [1, 14, 5, 20, 4, 2, 54, 20, 87, 98, 3, 1, 32], lowVal = 14, highVal = 20
    Output
    [1, 5, 4, 2, 1, 3, 14, 20, 20, 98, 87, 32, 54]
    Explanation
    nothin found 🥹

    Constraints

    Limits and guarantees your solution can rely on.

    nothin found againnnn 😭
    public int[] threePartitionArray(int[] arr, int lowVal, int highVal) {
      // write your code here
    }
    
    Input

    arr

    [1, 14, 5, 20, 4, 2, 54, 20, 87, 98, 3, 1, 32]

    lowVal

    14

    highVal

    20

    Output

    [1, 5, 4, 2, 1, 3, 14, 20, 20, 98, 87, 32, 54]

    Sign in to submit your solution.