# leetcode - 同积元组

## 示例

### 示例 1：

```输入：nums = [2,3,4,6]

(2,6,3,4) , (2,6,4,3) , (6,2,3,4) , (6,2,4,3)
(3,4,2,6) , (3,4,2,6) , (3,4,6,2) , (4,3,6,2)
```

### 示例 2：

```输入：nums = [1,2,4,5,10]

(1,10,2,5) , (1,10,5,2) , (10,1,2,5) , (10,1,5,2)
(2,5,1,10) , (2,5,10,1) , (5,2,1,10) , (5,2,10,1)
(2,10,4,5) , (2,10,5,4) , (10,2,4,5) , (10,2,4,5)
(4,5,2,10) , (4,5,10,2) , (5,4,2,10) , (5,4,10,2)
```

### 示例 3：

```输入：nums = [2,3,4,6,8,12]

```

### 示例 4：

```输入：nums = [2,3,5,7]

```

## 提示

• `1 <= nums.length <= 1000`
• `1 <= nums[i] <= 104`
• `nums 中的所有元素 互不相同`

## 代码

```/**
* @param {number[]} nums
* @return {number}
*/
const tupleSameProduct = function (nums) {
const obj = {};
for (let i = 0; i < nums.length; i++) {
let j = nums.length - 1;
while (j >= 0) {
if (i !== j) {
const num = nums[i] * nums[j];
if (obj[num]) {
obj[num]++;
} else {
obj[num] = 1;
}
}
j--;
}
}
let count = 0;
for (const key of Object.keys(obj)) {
if (obj[key] >= 4) {
const num = obj[key] / 2;
count = count + num * (num - 1) * 4;
}
}
return count;
};

export default tupleSameProduct;
```

## 测试

```import tupleSameProduct from '../../code/leetcode/1726';

describe('test function tupleSameProduct: ', () => {
test('test case nums = [2,3,4,6]', () => {
const res = tupleSameProduct([2, 3, 4, 6]);
expect(res).toBe(8);
});
test('test case nums = [1,2,4,5,10]', () => {
const res = tupleSameProduct([1, 2, 4, 5, 10]);
expect(res).toBe(16);
});
test('test case nums = [2,3,4,6,8,12]', () => {
const res = tupleSameProduct([2, 3, 4, 6, 8, 12]);
expect(res).toBe(40);
});
test('test case nums = [2,3,5,7]', () => {
const res = tupleSameProduct([2, 3, 5, 7]);
expect(res).toBe(0);
});
test('test case nums = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192]', () => {
const res = tupleSameProduct([
1,
2,
4,
8,
16,
32,
64,
128,
256,
512,
1024,
2048,
4096,
8192,
]);
expect(res).toBe(1288);
});
});
```

## 说明

0 条评论

• ### LeetCode 1726. 同积元组（排列组合）

给你一个由 不同 正整数组成的数组 nums ，请你返回满足 a * b = c * d 的元组 (a, b, c, d) 的数量。其中 a、b、c 和 d 都...

• ### LeetCode 1822. 数组元素积的符号

https://leetcode-cn.com/problems/sign-of-the-product-of-an-array/

• ### LeetCode 1822. 数组元素积的符号

给你一个整数数组 nums 。 令 product 为数组 nums 中所有元素值的乘积。

• ### LeetCode 1464. 数组中两元素的最大乘积

给你一个整数数组 nums，请你选择数组的两个不同下标 i 和 j，使 (nums[i]-1)*(nums[j]-1) 取得最大值。

• ### LeetCode 1464. 数组中两元素的最大乘积

给你一个整数数组 nums，请你选择数组的两个不同下标 i 和 j，使 (numsi-1)*(numsj-1) 取得最大值。

• ### LeetCode 0084. 柱状图中最大的矩形

给定 n 个非负整数，用来表示柱状图中各个柱子的高度。每个柱子彼此相邻，且宽度为 1 。

• ### ​【每日leetcode】48.数组中两元素的最大乘积

给你一个整数数组 nums，请你选择数组的两个不同下标 i 和 j，使 (nums[i]-1)*(nums[j]-1) 取得最大值。

• ### Python 求中心索引，第二种方法不可取！

今天，我们做一道 LeetCode 题目，开启咱们 【算法刷题日记】知识星球的第一道 LeetCode 题。题目的基本类型是 数组，考察点数组的索引、求和等，基...

• ### 数字问题-LeetCode 492、495、496、498、500、501、504、506

LeetCode # 492 495 496 498 500 501 504 506

• ### 第二轮 Python 刷题笔记一：数组

经过四十多天缓慢的刷题，现在进度大概是刷了八十多道 LeetCode 题，最近也在吸取过来人的经验，仍然需要对刷题计划进行调整。

• ### 【leetcode刷题】T16-乘积最大子序列

今天分享leetcode第16篇文章，也是leetcode第152题—乘积最大子序列（Maximum Product Subarray），地址是：https:/...

• ### 【leetcode刷题】T207-三个数的最大乘积

https://leetcode-cn.com/problems/maximum-product-of-three-numbers

• ### 层次遍历、四个方向遍历更新-LeetCode 429、892、542

给定一个 N 叉树，返回其节点值的层序遍历。(即从左到右，逐层遍历)。 例如，给定一个 3叉树 :

• ### 数字问题-LeetCode 524、525、526、528、530、537、539、540

LeetCode # 524 525 526 528 530 537 539 540

• ### LeetCode 930. 和相同的二元子数组（哈希+前缀和）

类似题目： LeetCode 523. 连续的子数组和（求余 哈希） LeetCode 525. 连续数组（前缀和+哈希） LeetCode 560. 和...

• ### LeetCode 0152. 乘积最大子数组[动态规划详解]

给你一个整数数组 nums ，请你找出数组中乘积最大的连续子数组（该子数组中至少包含一个数字），并返回该子数组所对应的乘积。

• ### 六十四、开始刷Leetcode之旅（Python版本）

作者介绍：Runsen目前大三下学期，专业化学工程与工艺，大学沉迷日语，Python， Java和一系列数据分析软件。导致翘课严重，专业排名中下。.在大学60%...

• ### 构建乘积数组

给定一个数组 A[0,1,…,n-1]，请构建一个数组 B[0,1,…,n-1]，其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1...

• ### Leetcode | 第B节：数组综合题（2）

抱歉这一节相对隔得时间长了一些再发出来，因为这几天基本上主要时间都在关注东京奥运会的比赛现场。在发表这篇文章的时候，也恰好知道名将苏炳添以9‘83’‘的时间晋级...