# Special Array With X Elements Greater Than or Equal X

In this lab, you are tasked with finding a **special** array. An array `nums`

is considered special if there exists a number `x`

such that there are exactly `x`

numbers in `nums`

that are greater than or equal to `x`

. Your goal is to return `x`

if the array is special, otherwise return `-1`

. Keep in mind that `x`

does not have to be an element in `nums`

. It is guaranteed that if `nums`

is special, the value for `x`

is unique.

You will be given an array `nums`

of non-negative integers, and you should implement the `specialArray`

function to pass the challenges.

Function signature:

`/** * @param {number[]} nums * @return {number} */ var specialArray = function(nums) { };`

Here are some examples to help you understand the problem:

**Example 1:**

`Input: nums = [3, 5] Output: 2 Explanation: There are 2 values (3 and 5) that are greater than or equal to 2.`

**Example 2:**

`Input: nums = [0, 0] Output: -1 Explanation: No numbers fit the criteria for x. If x = 0, there should be 0 numbers >= x, but there are 2. If x = 1, there should be 1 number >= x, but there are 0. If x = 2, there should be 2 numbers >= x, but there are 0. x cannot be greater since there are only 2 numbers in nums.`

**Example 3:**

`Input: nums = [0, 4, 3, 0, 4] Output: 3 Explanation: There are 3 values that are greater than or equal to 3.`

**Constraints:**

`1 <= nums.length <= 100`

`0 <= nums[i] <= 1000`

Once you have implemented the `specialArray`

function, you will be given several challenges to test your solution. Here are the challenges you will face in this lab:

- Challenge 1: Implement the
`specialArray`

function. - Challenge 2: Test the function with various inputs and edge cases.

Export the `specialArray`

function and any other variables or functions you need to complete the challenges.

Remember that the evaluation script will import your code, so make sure to export everything that is required for the challenges.

Good luck, and happy coding!