本文主要是介绍Day 7:1726 同积元组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1726 同积元组
- 1. 题目描述
- 2. 解题思路
- 3. 代码实现
1. 题目描述
1726 同积元组
2. 解题思路
假设存在 n 组数,对于其中任意两组数 (a, b) 和(c, d),均满足 a * b = c * d 的条件,则这样的组合一共有
C ( n , 2 ) = n × ( n − 1 ) 2 C(n, 2) = \frac{n \times (n - 1)}{2} C(n,2)=2n×(n−1)
个。
对于每一对满足上述条件的组合数,可以构成8个不同的元组,利用上述结论来求解。
3. 代码实现
class Solution {
public:int tupleSameProduct(vector<int>& nums) {int n = nums.size();int res = 0;unordered_map<int, int> cnt;for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {cnt[nums[i] * nums[j]]++;}}for (auto& [_, v] : cnt) {res += v * (v - 1) * 4;}return res;}
};
这篇关于Day 7:1726 同积元组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!