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;
    }
};
相关推荐
naturerun几秒前
从数组中删除元素的算法
数据结构·c++·算法
he___H2 分钟前
接雨水----解
leetcode
斯内科1 小时前
四胞胎素数:找出‌个位数分别是 1、3、7、9‌,且‌十位及更高位数字完全相同‌的质数,例如 11、13、17、19
算法·质数·素数·四胞胎素数
Hello.Reader1 小时前
算法基础(十二)——主方法:快速求解常见递归式
算法
小O的算法实验室2 小时前
2026年IEEE TITS,面向按需外卖配送调度的特定问题知识与基于学习元启发式算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
加勒比海带662 小时前
目标检测算法——农林行业数据集汇总附下载链接【Plant】
大数据·图像处理·人工智能·算法·目标检测
洛水水2 小时前
【力扣100题】23. 螺旋矩阵
算法·leetcode·矩阵
影sir2 小时前
不同测试数据下,该如何选择算法
算法·深度优先
潇湘散客2 小时前
CAX软件插件化设计实现牛刀小试
c++·算法·图形学·opengl
速易达网络3 小时前
2026,视觉算法正在经历一场静默革命
算法