信息技术会考做网站,网站做淘宝客有什么要求,wordpress是干嘛的,郑州网站建设seo优化同积元组【LC1726】 给你一个由 不同 正整数组成的数组 nums #xff0c;请你返回满足 a * b c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素#xff0c;且 a ! b ! c ! d 。 思路 求出所有二元组的积及其出现次数#xff0c;假设某个积出现的次…同积元组【LC1726】 给你一个由 不同 正整数组成的数组 nums 请你返回满足 a * b c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都是 nums 中的元素且 a ! b ! c ! d 。 思路 求出所有二元组的积及其出现次数假设某个积出现的次数为 a a a那么其对应的组合数有 C a 2 a ∗ ( a − 1 ) / 2 C_a^2a*(a-1)/2 Ca2a∗(a−1)/2 由于题意求的是排列数即两个二元组顺序可以交换二元组内部顺序也可以交换那么最后的排列数还需要乘以8 实现 使用哈希表存储每个二元组对应的出现次数在统计次数的同时求出排列数 class Solution {public int tupleSameProduct(int[] nums) {MapInteger, Integer map new HashMap();int n nums.length, res 0;for (int i 0; i n; i){for (int j i 1; j n; j){int p nums[i] * nums[j];int count map.getOrDefault(p, 0);res count * 8;map.put(p, map.getOrDefault(p, count) 1);}}return res;}
}复杂度 时间复杂度 O ( n 2 ) O(n^2) O(n2)空间复杂度 O ( n ) O(n) O(n)