描述

Given an array of integers arr, and three integers a, b and c. You need to find the number of good triplets.

A triplet (arr[i], arr[j], arr[k]) is good if the following conditions are true:

  • 0 <= i < j < k < arr.length
  • |arr[i] - arr[j]| <= a
  • |arr[j] - arr[k]| <= b
  • |arr[i] - arr[k]| <= c

Where |x| denotes the absolute value of x.
Return the number of good triplets.

Example 1:

Input: arr = [3,0,1,1,9,7], a = 7, b = 2, c = 3
Output: 4
Explanation: There are 4 good triplets: [(3,0,1), (3,0,1), (3,1,1), (0,1,1)].

Example 2:

Input: arr = [1,1,2,2,3], a = 0, b = 0, c = 1
Output: 0
Explanation: No triplet satisfies all conditions.

Note:

3 <= arr.length <= 100
0 <= arr[i] <= 1000
0 <= a, b, c <= 1000

解析

根据题意,只需要在进行三重 for 循环的时候,判断是否满足给出的三个限制条件即可,这里有一个小的技巧,就是在二重 for 循环的时候先判断 abs(arr[i] - arr[j]) <= a 是否成立,这样可以缩短提交的时间。

解答

class Solution(object):def countGoodTriplets(self, arr, a, b, c):""":type arr: List[int]:type a: int:type b: int:type c: int:rtype: int"""n = len(arr)r = 0for i in range(n-2):for j in range(i+1,n-1):if abs(arr[i] - arr[j]) <= a:for k in range(j+1,n):if abs(arr[j]-arr[k])<=b and abs(arr[i]-arr[k])<=c:r += 1return r

运行结果

Runtime: 324 ms, faster than 86.44% of Python online submissions for Count Good Triplets.
Memory Usage: 13.5 MB, less than 64.45% of Python online submissions for Count Good Triplets.

原题链接:https://leetcode.com/problems/count-good-triplets/

leetcode 1534. Count Good Triplets(python)相关推荐

  1. LeetCode:322. 零钱兑换(python)

    LeetCode:322. 零钱兑换(python) 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总 ...

  2. LeetCode —— 146. LRU缓存机制(Python)

    运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果关键字 (key) 存 ...

  3. LeetCode —— 332. 重新安排行程(Python)

    给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序.所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行 ...

  4. LeetCode —— 980. 不同路径 III(Python)

    在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格.且只有一个起始方格. 2 表示结束方格,且只有一个结束方格. 0 表示我们可以走过的空方格. -1 表示我们无法跨越的障碍. 返回在 ...

  5. Leetcode 之Count and Say(35)

    很有意思的一道题,不好想啊. string getNext(string &s){char start = s[0];int count = 0;stringstream ss;for (in ...

  6. 回旋数字c语言数组,LeetCode 447*. 回旋镖的数量(Python)

    给定平面上 n 对不同的点,"回旋镖" 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序). 找到所有回旋镖的 ...

  7. leetcode用python还是c_刷Leetcode里面遇到的问题(Python)

    新年伊始,换了新的现场.总体来说比之前宽松了不少,正好有了多余的时间去刷刷题.这篇文章就当作自己的学习笔记,不定期更新.自己还是初级水平,慢慢来,碰到好的代码也要学习一下! ============= ...

  8. 【LeetCode】222. Count Complete Tree Nodes 解题报告(Python)

    [LeetCode]222. Count Complete Tree Nodes 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个 ...

  9. [LeetCode]题解(python):076-Minimum Window Substring

    题目来源: https://leetcode.com/problems/minimum-window-substring/ 题意分析: 给定两个字符串S和T.在S中找到最短的一个子字符串使得他包括所有 ...

最新文章

  1. 漫谈linux文件IO
  2. golang的一个简单小爬虫demo学习记录
  3. MySQL入门-3:安装与客户端工具
  4. asp.net core后台系统登录的快速构建
  5. P5952-[POI2018]水箱【最小生成树】
  6. egg 编码规范_Egg 框架简述 (仅学习)
  7. jemter的竞品分析
  8. 万字通俗讲解何为复杂度
  9. redis指定配置文件启动_redis基础知识整理-安装
  10. 3.3 修改“时间”维度
  11. ASP.NET MVC显示UserControl控件(扩展篇)
  12. 雕刻机可以制作PCB
  13. 贪心算法(贪婪算法)
  14. 百度导航引擎初始化失败问题解决
  15. 【面试题】数字转成汉字形式
  16. Transformer详解
  17. android显示通知图标大全,Android推送通知:图标未显示在通知中,而是显示白色方块...
  18. Java 中代码优化的 30 个小技巧(下)
  19. 解决Word2019使用卡顿问题
  20. 获取微信公众号图文封面图的方法

热门文章

  1. 项目管理的核心要素——时间、成本与质量
  2. 记canvas画笔笔迹的多次优化过程
  3. 大林算法,比较基础的,无振铃的改了对象需要手动改一下
  4. python名片管理器实验报告_名片管理系统——实验报告.doc
  5. 计算机必学知识,基础电脑知识:计算机操作常识入门必学
  6. TSF微服务治理实战系列(二)——服务路由
  7. 链X云英雄城市峰会|区块链技术落地数字化社区提升区域养老幸福指数
  8. 计算机视觉最新进展概览2021年8月15日到2021年8月21日
  9. 数字世界的积木-从MOS管搭反相器,与非门,锁存器,触发器
  10. 实验四:进程同步与通信