Program to find X for special array with X elements greater than or equal X in Python

A special array is one where there exists a number x such that exactly x elements in the array are greater than or equal to x. We need to find this value x, or return -1 if no such value exists.

For example, in the array [4, 6, 7, 7, 1, 0], there are 4 numbers (4, 6, 7, 7) that are greater than or equal to 4, making x = 4 the special value.

Algorithm

To solve this problem, we follow these steps ?

  • Iterate through all possible values of x from 0 to the maximum element in the array
  • For each x, count how many elements are greater than or equal to x
  • If the count equals x, return x as the special value
  • If no such x is found, return -1

Example

def solve(nums):
    for i in range(max(nums) + 1):
        count = 0
        for j in nums:
            if j >= i:
                count += 1
        if count == i:
            return i
    return -1

nums = [4, 6, 7, 7, 1, 0]
result = solve(nums)
print(f"Input: {nums}")
print(f"Special value: {result}")
Input: [4, 6, 7, 7, 1, 0]
Special value: 4

How It Works

Let's trace through the example with nums = [4, 6, 7, 7, 1, 0] ?

  • For x = 0: All 6 elements are ? 0, but 6 ? 0
  • For x = 1: 5 elements are ? 1, but 5 ? 1
  • For x = 2: 4 elements are ? 2, but 4 ? 2
  • For x = 3: 4 elements are ? 3, but 4 ? 3
  • For x = 4: 4 elements are ? 4, and 4 = 4 ?

Additional Examples

def solve(nums):
    for i in range(max(nums) + 1):
        count = 0
        for j in nums:
            if j >= i:
                count += 1
        if count == i:
            return i
    return -1

# Test with different arrays
test_cases = [
    [3, 5],
    [0, 0],
    [0, 4, 3, 0, 4],
    [1, 2, 3, 4, 5]
]

for nums in test_cases:
    result = solve(nums)
    print(f"Array: {nums} ? Special value: {result}")
Array: [3, 5] ? Special value: 2
Array: [0, 0] ? Special value: 0
Array: [0, 4, 3, 0, 4] ? Special value: 3
Array: [1, 2, 3, 4, 5] ? Special value: -1

Time Complexity

The algorithm has a time complexity of O(n × max(nums)), where n is the length of the array. For each possible value of x, we iterate through all elements to count those greater than or equal to x.

Conclusion

This brute force approach checks all possible values of x to find the special array condition. The solution iterates through potential x values and counts matching elements to determine if the array is special.

Updated on: 2026-03-25T20:23:37+05:30

528 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements