2475.数组中不等三元组的数目
链接:2475.数组中不等三元组的数目
难度:Easy
标签:数组、哈希表、排序
简介:返回满足上述条件三元组的数目。
题解 1 - cpp
- 编辑时间:2022-11-20
- 执行用时:344ms
- 内存消耗:8.4MB
- 编程语言:cpp
- 解法介绍:暴力。
class Solution {
public:
int unequalTriplets(vector<int>& nums) {
map<int, int> m;
for (auto &num : nums) m[num]++;
vector<int> list;
for (auto &item : m) list.push_back(item.first);
int ans = 0;
for (int i = 0; i < list.size(); i++) {
for (int j = i + 1; j < list.size(); j++) {
for (int k = j + 1; k < list.size(); k++) {
ans += m[list[i]] * m[list[j]] * m[list[k]];
}
}
}
return ans;
}
};
题解 2 - cpp
- 编辑时间:2022-11-20
- 执行用时:4ms
- 内存消耗:8.3MB
- 编程语言:cpp
- 解法介绍:对于每一组相同的数,判断比他小的有几个数,比他大的有几个数。
class Solution {
public:
int unequalTriplets(vector<int>& nums) {
sort(nums.begin(), nums.end());
int ans = 0, prev = 0;
for (int i = 0; i < nums.size() - 1; i++) {
if (nums[i] == nums[i + 1]) continue;
ans += prev * (i - prev + 1) * (nums.size() - i - 1);
prev = i + 1;
}
return ans;
}
};