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) 的数量
开启你的 职业生涯
通过完成课程获得认证
立即开始