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

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。

相关文章:

  • 【C判断a*a+b*b=c*c且a>=b>0且输出最小的】2022-6-26
  • PS剪切蒙版全面教程
  • 03- 六自由度串联机械臂(ABB)动力学分析
  • PyTorch 实现 MNIST 手写数字识别
  • 第六章、6.2 ESP32低功耗模式详解:深度睡眠与轻度睡眠实战指南
  • 23种设计模式图解
  • 一夜冲刺!!微机原理与接口
  • Java语言 | ThreadLocal:原理、应用及注意事项
  • 汇川IS620N伺服驱动器如何通过etherCAT主站转profinet网关与西门子1200plc通讯
  • 6.15 操作系统面试题 锁 内存管理
  • 每天宜搭宜搭小知识—报表组件—日历热力图
  • NodeJS里经常用到require,require的模块加载机制是什么
  • DAY 50 超大力王爱学Python
  • 电磁场与电磁波篇---电荷电流
  • 【Markdown】基础用法汇总(标题、列表、链接、图片、加粗斜体、上下角标、引用块、代码块、公式)
  • 香橙派3B学习笔记11:systemd服务管理初步测试
  • Kubernetes (K8S) 系统学习规划
  • 电商数据采集的技术分享
  • day54python打卡
  • 在Qt中使用OpenGL显示大量点(点云)
  • 如何用域名访问网站/牛推网
  • 西安网站推广招聘网/做关键词推广
  • 软膜做网站有用吗/按效果付费的推广
  • 网站建设新发展/百度商店应用市场
  • 唐山建设网站公司/中山网站建设
  • 知名的政府网站建设企业/沈阳优化网站公司