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;
    }
};
相关推荐
阿Y加油吧3 分钟前
LeetCode 双指针经典双题解|盛最多水的容器 + 三数之和,从入门到进阶吃透套路
算法·leetcode·职场和发展
B站_计算机毕业设计之家13 分钟前
计算机毕业设计:汽车数据可视化与后台管理平台 Django框架 requests爬虫 可视化 车辆 数据分析 大数据 机器学习(建议收藏)✅
python·算法·机器学习·信息可视化·django·汽车·课程设计
格林威14 分钟前
工业相机图像采集处理:从 RAW 数据到 AI 可读图像,堡盟相机 C#实战代码深度解析
c++·人工智能·数码相机·opencv·算法·计算机视觉·c#
lvxiangyu119 小时前
MPPI 算法证明重构:基于无穷维泛函变分与 KL 散度的构造性推导
算法·重构·最优控制·随机最优控制
2301_8184190110 小时前
C++中的解释器模式变体
开发语言·c++·算法
ab15151710 小时前
3.25完成*23、*24、*28、*30、*33、*38、*39、*40
算法
颜酱10 小时前
回溯算法实战练习(3)
javascript·后端·算法
小王不爱笑13211 小时前
G1 GC 的核心基础:Region 模型的补充细节
java·jvm·算法
小王不爱笑13212 小时前
三色标记算法
算法
小O的算法实验室12 小时前
2026年AST SCI1区TOP,基于速度障碍法的多无人机三维避障策略,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进