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次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.