Python程式:查詢陣列中相同元素的對數 (i, j)
假設我們有一個數組 nums。我們需要找到滿足 nums[i] = nums[j] 但 i 不等於 j 的對數 (i,j)。
因此,如果輸入類似 nums = [1,3,1,3,5],則輸出將為 4,因為對數為 (0,2), (2,0), (1,3) 和 (3,1)。
為了解決這個問題,我們將遵循以下步驟:
d := 一個新的字典 對於 nums 中的每個元素 c,執行以下操作:如果 c 在 d 中存在,則 d[c] := (d[c] + 1),否則 d[c] := 1 res := 0 對於字典 d 中所有值大於 1 的元素 c,執行以下操作:res := res +(d[c] *(d[c]-1)) 返回 res 示例 讓我們看看以下實現,以便更好地理解:
def solve(nums):
d = {}
for c in nums:
d[c] = d[c] + 1 if c in d.keys() else 1
res = 0
for c in (x for x in d if d[x] > 1):
res += (d[c] * (d[c]-1))
return res
nums = [1,3,1,3,5]
print(solve(nums)) 輸入 [1,3,1,3,5]
輸出 4
相關文章 C++ 中計算滿足 arr[i] * arr[j] > arr[i] + arr[j] 的對數 (i, j)
C++ 中計算滿足 i < j 的唯一對數 (arr[i], arr[j]) 的數量
C++ 中計算滿足 ((n % i) % j) % n 最大化的對數 (i, j) 的數量
C++ 中計算滿足 (i+j) 能被 A 和 B 整除的對數 (i,j) 的數量
Python - 從兩個列表中建立對,使得對中的元素不相同
C++ 中計算滿足 a[i] 和 a[j] 的乘積為 2 的冪的無序對數 (i,j)
C++ 中計算滿足 arr[i] 能被 arr[j] 整除或 arr[j] 能被 arr[i] 整除的對數 (i, j) 的數量
計算二進位制字串中滿足 S[i]、S[j] 和 S[j]、S[k] 的按位與結果相同的三個元素組的數量
C++ 中計算滿足 LCM(arr[i], arr[j]) > min(arr[i],arr[j]) 的對數 (i, j) 的數量
Python 中查詢滿足元素位於不同行且和為給定值的對 (i, j)
Python 程式:查詢滿足第一對和最後一對的乘積相同的四元組的數量
Python 程式:計算陣列元素相同的索引對的數量
透過選擇滿足 arr[i] >= arr[j] 的對並用 arr[i] – arr[j] 替換 arr[i] 來最小化陣列的最後一個剩餘元素
Python 程式:查詢使 nums[i] + nums[j] + (i -j) 最大化的對 (i, j)?
C++ 中計算滿足 i*arr[i] > j*arr[j] 的對數 (i, j) 的數量
開啟你的 職業生涯
透過完成課程獲得認證
立即開始