leetcode 3583

3583: 统计特殊三元组

三变量问题,一般枚举中间的变量最简单。

为什么?对比一下:

  • 枚举 i,后续计算中还需保证 j<k。
  • 枚举 j,那么 i 和 k 自动被 j 隔开,互相独立,后续计算中无需关心 i 和 k 的位置关系。

思路:

由于答案不超过 n⋅10^5⋅10^5≤10^15,可以只在返回时取模。

复制代码
class Solution {
public:
    int specialTriplets(vector<int>& nums) {
        constexpr int MOD=1'000'000'007;
        unordered_map<int,int> suf;
        for(int x :nums) suf[x]++;

        long long ans=0;
        unordered_map<int,int> pre;
        for(int x :nums){
            suf[x]--;
            // 现在 pre 中的是 [0,j-1],suf 中的是 [j+1,n-1]
            ans+=(long long)pre[x*2]*suf[x*2];
            pre[x]++;
        }

        return ans%MOD;
    }
};
相关推荐
monster000w9 小时前
大模型微调过程
人工智能·深度学习·算法·计算机视觉·信息与通信
小小晓.9 小时前
Pinely Round 4 (Div. 1 + Div. 2)
c++·算法
SHOJYS9 小时前
学习离线处理 [CSP-J 2022 山东] 部署
数据结构·c++·学习·算法
biter down9 小时前
c++:两种建堆方式的时间复杂度深度解析
算法
zhishidi10 小时前
推荐算法优缺点及通俗解读
算法·机器学习·推荐算法
WineMonk10 小时前
WPF 力导引算法实现图布局
算法·wpf
2401_8370885010 小时前
双端队列(Deque)
算法
ada7_10 小时前
LeetCode(python)108.将有序数组转换为二叉搜索树
数据结构·python·算法·leetcode
奥特曼_ it10 小时前
【机器学习】python旅游数据分析可视化协同过滤算法推荐系统(完整系统源码+数据库+开发笔记+详细部署教程)✅
python·算法·机器学习·数据分析·django·毕业设计·旅游