Python程序:查找特殊数组中大于等于X的元素个数为X的X值


假设我们有一个名为nums的数组,其中所有元素均为0或正数。如果存在一个数字x,使得nums中恰好有x个数字大于或等于x,则nums被认为是特殊的数组。x不必是nums中的元素。这里我们必须找到x(如果数组是特殊的),否则返回-1。

因此,如果输入类似于nums = [4,6,7,7,1,0],则输出将为4,因为有4个数字大于或等于4。

为了解决这个问题,我们将遵循以下步骤:

  • 从0到nums的最大值循环:

    • 计数器:= 0

    • 遍历nums中的每个j:

      • 如果j >= i,则


      • 计数器 := 计数器 + 1
    • 如果计数器等于i,则

      • 返回i

  • 返回-1

示例(Python)

让我们来看下面的实现,以便更好地理解:

 在线演示

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]
print(solve(nums))

输入

[4,6,7,7,1,0]

输出

-1

更新于:2021年5月17日

394次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告