用 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
廣告