文章目录

  • 1. 题目
  • 2. 解题

1. 题目

用一个下标从 0 开始的二维整数数组 rectangles 来表示 n 个矩形,其中 rectangles[i] = [widthi, heighti] 表示第 i 个矩形的宽度和高度。

如果两个矩形 i 和 j(i < j)的宽高比相同,则认为这两个矩形 可互换 。
更规范的说法是,两个矩形满足 widthi/heighti == widthj/heightj(使用实数除法而非整数除法),则认为这两个矩形 可互换 。

计算并返回 rectangles 中有多少对 可互换 矩形。

示例 1:
输入:rectangles = [[4,8],[3,6],[10,20],[15,30]]
输出:6
解释:下面按下标(从 0 开始)列出可互换矩形的配对情况:
- 矩形 0 和矩形 1 :4/8 == 3/6
- 矩形 0 和矩形 2 :4/8 == 10/20
- 矩形 0 和矩形 3 :4/8 == 15/30
- 矩形 1 和矩形 2 :3/6 == 10/20
- 矩形 1 和矩形 3 :3/6 == 15/30
- 矩形 2 和矩形 3 :10/20 == 15/30示例 2:
输入:rectangles = [[4,5],[7,8]]
输出:0
解释:不存在成对的可互换矩形。提示:
n == rectangles.length
1 <= n <= 10^5
rectangles[i].length == 2
1 <= widthi, heighti <= 10^5

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-pairs-of-interchangeable-rectangles
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 按照 w/h 进行计数,组内可以取出 Cn2=n(n−1)/2C_n^2 = n(n-1)/2Cn2​=n(n−1)/2 种组合
class Solution:def interchangeableRectangles(self, rectangles: List[List[int]]) -> int:d = {}for r in rectangles:res = r[0]/r[1]if res not in d:d[res] = 0d[res] += 1ans = 0for _, v in d.items():ans += v*(v-1)//2return ans

220 ms 50.9 MB Python3


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 2001. 可互换矩形的组数相关推荐

  1. 第 258 场周赛(5867. 反转单词前缀/ 5868. 可互换矩形的组数 / 5869. 两个回文子序列长度的最大乘积(状态压缩) / 5870. 每棵子树内缺失的最小基因值(小大合并))

    第 258 场周赛 从这次开始还是把题目加上名字吧,要不然想找找不到题,哈哈 字节的周赛,还想冲个200来着,最后一题按二叉树写的,用例还能过,一提交,发现多叉的...来不及改了..400多名 586 ...

  2. 1815. 得到新鲜甜甜圈的最多组数 状态压缩

    1815. 得到新鲜甜甜圈的最多组数 有一个甜甜圈商店,每批次都烤 batchSize 个甜甜圈.这个店铺有个规则,就是在烤一批新的甜甜圈时,之前 所有 甜甜圈都必须已经全部销售完毕.给你一个整数 b ...

  3. 【每日一题Day95】LC1815得到新鲜甜甜圈的最多组数 | 状态压缩dp 记忆化搜索

    得到新鲜甜甜圈的最多组数[LC1815] 有一个甜甜圈商店,每批次都烤 batchSize 个甜甜圈.这个店铺有个规则,就是在烤一批新的甜甜圈时,之前 所有 甜甜圈都必须已经全部销售完毕.给你一个整数 ...

  4. 【leetcode】 算法题1 两数之和

    [leetcode] 算法题1 两数之和 问题   给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums ...

  5. c++中组数的替代方案

    向量 vector vector可以看作一个动态数组,用于存储一组数据类型相同的数据,对数据元素的个数没有限制,即可以把 vector看作一个存放任意数据类型的"容器".使用 ve ...

  6. leetcode 454. 4Sum II | 454. 四数相加 II(Java)

    题目 https://leetcode.com/problems/4sum-ii/ 题解 四数相加问题. 对于左边两个数两两组合,需要维护一个 map,用来存左边两个数的 sum 以及该 sum 对应 ...

  7. 将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中。

    将AX寄存器中的16位数据分成4组(从高到低),每组4位,然后把这4组数作为数当中的低4位分别放在AL,BL,CL,DL中. P176 4.14 编程思路:首先用BX.DX存放AX,即原AX=原BX= ...

  8. 【牛客 - 185A】无序组数 (思维,数学,因子个数)

    题干: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 给出一个二元组(A,B) 求出无序 ...

  9. LeetCode 259. 较小的三数之和(固定一点,内层双指针)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个长度为 n 的整数数组和一个目标值 target,寻找能够使条件 nums[i] + nums[j] + nums[k] < target ...

最新文章

  1. 微软OCR两层优化提升自然场景下的文字识别精度(模式识别新研究)
  2. C++Primer中文版(第4版)第四章习题答案
  3. winform打开cad图纸_为什么CAD图纸打开后会显示很多问号“???”,该怎么解决...
  4. 0.Overview——Deep Learning
  5. 社区首款 OAM 可视化平台发布!
  6. OpenShift 4 之Istio-Tutorial (11) 控制Egress访问
  7. HTML+CSS+JS实现计算机功能
  8. 剑指offer(C++)-JZ36:二叉搜索树与双向链表(数据结构-树)
  9. .net 4.0新特性-自旋锁(SpinLock)
  10. Tomcat Session管理分析
  11. 1051. Pop Sequence (25)
  12. Unicode和UTF编码转换
  13. 计算机管理员英语怎么说,电脑管理员英文administrator写法
  14. 2022年4月30号Mysql语句增删改查(CRUB)重在实操。
  15. 数据产品经理之数据准确性及测试必要性
  16. 初级算法-10. 有效的数独
  17. 教你怎样混社会[转]
  18. 抠图:基于单个原色通道
  19. python字典元素由什么组成_【】Python中,字典、列表、元组分别用 、 、 作定界符,字典的每个元素由两部分组成,分别是 和 ,其中 不允许重复。...
  20. 2020美赛数学建模 校级培训——Week_2

热门文章

  1. Django models中关于blank与null的补充说明
  2. 【python毕业设计】Django框架实现学生信息管理系统
  3. python编程中的if __name__ == 'main': 的作用和原理[2]
  4. Device eth0 does not seem to be present,delaying initialization的解决办法
  5. 字节数组转换为图片_每日一课 | Python 3 TypeError:无法将“字节”对象隐式转换为str...
  6. JS_17 ES5,ES6
  7. 指纹图像方向图matlab,matlab指纹方向场方向图程序
  8. ACM/ICPC 之 Floyd练习六道(ZOJ2027-POJ2253-POJ2472-POJ1125-POJ1603-POJ2607)
  9. SPOJ COT Count on a tree 主席树
  10. LockSupport的park和unpark