Q1726.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //
  2. // Created by 李洋 on 2023/10/19.
  3. //
  4. #ifndef LEECODE_C_Q1726_H
  5. #define LEECODE_C_Q1726_H
  6. #include <vector>
  7. #include <map>
  8. #include <../../dataStruct/Combination.h>
  9. using namespace std;
  10. int tupleSameProduct(vector<int> &nums) {
  11. int count = 0;
  12. unordered_map<int, int> m;
  13. for (int i = 0; i < nums.size(); ++i) {
  14. for (int j = i + 1; j < nums.size(); ++j) {
  15. m[nums[i] * nums[j]] = m[nums[i] * nums[j]] + 1;
  16. }
  17. }
  18. for (auto &pair: m) {
  19. if (pair.second > 1) {
  20. count += pair.second * (pair.second - 1) * 4;
  21. }
  22. }
  23. return count;
  24. }
  25. int tupleSameProduct2(vector<int> &nums) {
  26. int count = 0;
  27. vector<int> result;
  28. for (int i = 0; i < nums.size(); ++i) {
  29. for (int j = i + 1; j < nums.size(); ++j) {
  30. result.push_back(nums[i] * nums[j]);
  31. }
  32. }
  33. sort(result.begin(), result.end());
  34. int temp = 0;
  35. int num = nums[0];
  36. for (int i = 1; i < result.size(); ++i) {
  37. if (result[i] == num) {
  38. count += (temp++) * 8;
  39. } else {
  40. num = result[i];
  41. temp = 0;
  42. }
  43. if (result[i] == result[i - 1]) {
  44. count += 8;
  45. }
  46. }
  47. return count;
  48. }
  49. int tupleSameProduct3(vector<int> &nums) {
  50. int count = 0;
  51. vector<int> result;
  52. for (int i = 0; i < nums.size(); ++i) {
  53. for (int j = i + 1; j < nums.size(); ++j) {
  54. result.push_back(nums[i] * nums[j]);
  55. }
  56. }
  57. sort(result.begin(), result.end());
  58. int temp = 1;
  59. int num = nums[0];
  60. for (int i = 1; i < result.size(); ++i) {
  61. if (result[i] == num) {
  62. temp++;
  63. } else {
  64. count += temp * (temp - 1) * 4;
  65. num = result[i];
  66. temp = 1;
  67. }
  68. }
  69. return count;
  70. }
  71. #endif //LEECODE_C_Q1726_H
备用站点 当前处于降级运行的备用站点,仅供应急访问,数据和功能可能不是最新。