2475.数组中不等三元组的数目
链接:2475.数组中不等三元组的数目
难度:Easy
标签:数组、哈希表、排序
简介:返回满足上述条件三元组的数目。
题解 1 - 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;
    }
};
题解 2 - 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;
    }
};