leetcode 1534. Count Good Triplets(python)
描述
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)相关推荐
- LeetCode:322. 零钱兑换(python)
LeetCode:322. 零钱兑换(python) 给定不同面额的硬币 coins 和一个总金额 amount.编写一个函数来计算可以凑成总金额所需的最少的硬币个数.如果没有任何一种硬币组合能组成总 ...
- LeetCode —— 146. LRU缓存机制(Python)
运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果关键字 (key) 存 ...
- LeetCode —— 332. 重新安排行程(Python)
给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序.所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行 ...
- LeetCode —— 980. 不同路径 III(Python)
在二维网格 grid 上,有 4 种类型的方格: 1 表示起始方格.且只有一个起始方格. 2 表示结束方格,且只有一个结束方格. 0 表示我们可以走过的空方格. -1 表示我们无法跨越的障碍. 返回在 ...
- Leetcode 之Count and Say(35)
很有意思的一道题,不好想啊. string getNext(string &s){char start = s[0];int count = 0;stringstream ss;for (in ...
- 回旋数字c语言数组,LeetCode 447*. 回旋镖的数量(Python)
给定平面上 n 对不同的点,"回旋镖" 是由点表示的元组 (i, j, k) ,其中 i 和 j 之间的距离和 i 和 k 之间的距离相等(需要考虑元组的顺序). 找到所有回旋镖的 ...
- leetcode用python还是c_刷Leetcode里面遇到的问题(Python)
新年伊始,换了新的现场.总体来说比之前宽松了不少,正好有了多余的时间去刷刷题.这篇文章就当作自己的学习笔记,不定期更新.自己还是初级水平,慢慢来,碰到好的代码也要学习一下! ============= ...
- 【LeetCode】222. Count Complete Tree Nodes 解题报告(Python)
[LeetCode]222. Count Complete Tree Nodes 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个 ...
- [LeetCode]题解(python):076-Minimum Window Substring
题目来源: https://leetcode.com/problems/minimum-window-substring/ 题意分析: 给定两个字符串S和T.在S中找到最短的一个子字符串使得他包括所有 ...
最新文章
- 漫谈linux文件IO
- golang的一个简单小爬虫demo学习记录
- MySQL入门-3:安装与客户端工具
- asp.net core后台系统登录的快速构建
- P5952-[POI2018]水箱【最小生成树】
- egg 编码规范_Egg 框架简述 (仅学习)
- jemter的竞品分析
- 万字通俗讲解何为复杂度
- redis指定配置文件启动_redis基础知识整理-安装
- 3.3 修改“时间”维度
- ASP.NET MVC显示UserControl控件(扩展篇)
- 雕刻机可以制作PCB
- 贪心算法(贪婪算法)
- 百度导航引擎初始化失败问题解决
- 【面试题】数字转成汉字形式
- Transformer详解
- android显示通知图标大全,Android推送通知:图标未显示在通知中,而是显示白色方块...
- Java 中代码优化的 30 个小技巧(下)
- 解决Word2019使用卡顿问题
- 获取微信公众号图文封面图的方法