当前位置: 首页 > ai >正文

Leetcode 3583. Count Special Triplets

  • Leetcode 3583. Count Special Triplets
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3583. Count Special Triplets

1. 解题思路

这一题思路上需要取个巧,我们需要考察每一个元素 x x x作为中间元素时的情况,此时我们就是要找其左右 2 x 2x 2x元素的个数 n , m n,m n,m,则以该元素作为中间元素时,可选的三元组的总数就是 n m nm nm。因此,我们只需要遍历所有元素作为中间元素时的情况即可。

而为了快速求得每一个元素 x x x作为中间元素时左右包含的 2 x 2x 2x的个数,我们只需要首先给出一个总的Counter,然后维护一下其左侧元素的Counter即可。

2. 代码实现

给出python代码实现如下:

MOD = 10**9+7class Solution:def specialTriplets(self, nums: List[int]) -> int:cnt = Counter(nums)ans = 0left = defaultdict(int)for i, x in enumerate(nums):l = left[2*x]r = cnt[2*x]-left[2*x] if x != 0 else cnt[2*x]-left[2*x]-1ans = (ans + l*r) % MODleft[x] += 1return ans

提交代码评测得到:耗时687ms,占用内存43.11MB。

http://www.xdnf.cn/news/14429.html

相关文章:

  • 【python深度学习】Day 54 Inception网络及其思考
  • 深入理解IOC与DI
  • PID 控制算法 | 参数整定 | 方法 / 仿真 / 应用案例
  • 图片压缩工具 | 按指定高度垂直切割图片
  • 归一化:深度学习的隐藏加速器,解密数据标准化的魔力
  • Spring 事务传播行为全景分析表
  • Java设计模式之创建型模式( 工厂方法模式)介绍与说明
  • 智能跃迁:企业大模型落地方法论与路径最佳实践
  • 逆向知识点
  • 5.5.2_2并查集的进一步优化
  • 运算符与优先级
  • Docker环境下的EFK日志分析实践:从Filebeat采集到Kibana可视化的完整部署指南
  • 【LeetCode 207】课程表(有向无环图 DAG、拓扑排序)
  • 在C++中进程间通信(IPC)
  • 数据库学习(七)——MySQL执行引擎
  • Google机器学习实践指南(非线性特征工程解析)
  • 人工智能学习37-Keras手写识别预测
  • 对于数据库触发器自动执行的理解
  • Java类的继承
  • Luckfox Pico Pi RV1106学习<3>:支持IMX415摄像头
  • BeckHoff <---> Keyence (MD-X)激光 刻印机 Profient 通讯
  • Elasticsearch:什么是混合搜索?
  • AIGC 基础篇 高等数学篇 06 向量代数与空间解析几何
  • 人月神话-学习记录
  • SQL Developer 表复制
  • Python安装与使用教程
  • Maven在依赖管理工具方面的内容
  • Java多线程通信:wait/notify与sleep的深度剖析(时序图详解)
  • Spring是如何实现有代理对象的循环依赖
  • 【SQLAlchemy系列】 SQLAlchemy 中的多条件查询:or*与 in*操作符