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;
    }
};
相关推荐
长安er1 天前
LeetCode 20/155/394/739/84/42/单调栈核心原理与经典题型全解析
数据结构·算法·leetcode·动态规划·
MarkHD1 天前
智能体在车联网中的应用:第28天 深度强化学习实战:从原理到实现——掌握近端策略优化(PPO)算法
算法
能源系统预测和优化研究1 天前
【原创代码改进】考虑共享储能接入的工业园区多类型负荷需求响应经济运行研究
大数据·算法
yoke菜籽1 天前
LeetCode——三指针
算法·leetcode·职场和发展
小高不明1 天前
前缀和一维/二维-复习篇
开发语言·算法
bin91531 天前
当AI优化搜索引擎算法:Go初级开发者的创意突围实战指南
人工智能·算法·搜索引擎·工具·ai工具
曹牧1 天前
Java:Math.abs()‌
java·开发语言·算法
!停1 天前
c语言动态申请内存
c语言·开发语言·数据结构
悟能不能悟1 天前
list<string> 和String[],转化为jsonstr是不是一样的
数据结构·windows·list
CoovallyAIHub1 天前
纯视觉的终结?顶会趋势:不会联觉(多模态)的CV不是好AI
深度学习·算法·计算机视觉