用 Python 編寫程式來統計陣列元素相同的索引對


假設我們有一個稱為 nums 的數字列表。我們必須找到滿足以下條件的 i < j 對數:nums[i] 和 nums[j] 相同。

因此,如果輸入類似於 nums = [5, 4, 5, 4, 4],則輸出為 4,因為我們有索引對 (0, 2)、(1, 3)、(1, 4) 和 (3, 4)。

要解決這個問題,我們將按照以下步驟進行操作:-

  • c:包含 nums 中每個元素出現頻率的列表

  • count:0

  • 對於 c 的所有值的列表中的每個 n,執行

    • count:count 加上 (n*(n-1))/2 的向下取整

  • 返回 count

示例

讓我們看以下實現來獲得更好的理解

from collections import Counter
def solve(nums):
   c = Counter(nums)
   count = 0
   for n in c.values():
      count += n * (n - 1) // 2
   return count

nums = [5, 4, 5, 4, 4]
print(solve(nums))

輸入

[5, 4, 5, 4, 4]

輸出

4

更新於: 2021-10-11

556 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始
廣告