1 | 给你一个由 不同 正整数组成的数组 nums ,请你返回满足 a * b = c * d 的元组 (a, b, c, d) 的数量。 |
- 对数组进行排序
- 遍历两个元素,一个从头遍历,一个从尾遍历
- 使用双指针计算中间的积和两边的积的关系,移动指针
1 | class Solution { |
题目要求计算数组中 ab == cd的四元组,实际上可以看做求数组中两个数的积是否会在数组中重复出现。
也就是可以想到用map来判断是否会重复出现,重复出现的次数用key来记录。
因为是四元组相同的元素会有8种不同的组合,所以最终结果是重复出现次数*8;
1 | class Solution { |
参考文献
作者:mai-dong-cao来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。