文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你两个正整数数组 spells 和 potions ,长度分别为 n 和 m ,其中 spells[i] 表示第 i 个咒语的能量强度,potions[j] 表示第 j 瓶药水的能量强度。

同时给你一个整数 success 。一个咒语和药水的能量强度 相乘 如果 大于等于 success ,那么它们视为一对 成功 的组合。

请你返回一个长度为 n 的整数数组 pairs,其中 pairs[i] 是能跟第 i 个咒语成功组合的 药水 数目。

示例 1:
输入:spells = [5,1,3], potions = [1,2,3,4,5], success = 7
输出:[4,0,3]
解释:
- 第 0 个咒语:5 * [1,2,3,4,5] = [5,10,15,20,25] 。总共 4 个成功组合。
- 第 1 个咒语:1 * [1,2,3,4,5] = [1,2,3,4,5] 。总共 0 个成功组合。
- 第 2 个咒语:3 * [1,2,3,4,5] = [3,6,9,12,15] 。总共 3 个成功组合。
所以返回 [4,0,3] 。示例 2:
输入:spells = [3,1,2], potions = [8,5,8], success = 16
输出:[2,0,2]
解释:
- 第 0 个咒语:3 * [8,5,8] = [24,15,24] 。总共 2 个成功组合。
- 第 1 个咒语:1 * [8,5,8] = [8,5,8] 。总共 0 个成功组合。
- 第 2 个咒语:2 * [8,5,8] = [16,10,16] 。总共 2 个成功组合。
所以返回 [2,0,2] 。提示:
n == spells.length
m == potions.length
1 <= n, m <= 10^5
1 <= spells[i], potions[i] <= 10^5
1 <= success <= 10^10

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

2. 解题

  • 数据量很大,需要使用二分查找
  • potions 排序后,对每个 spell[i]potions 中二分查找左侧的 success / spell[i] 所在的位置 pos ,pos 往后的都是可以满足的组合
import bisect
import math
class Solution:def successfulPairs(self, spells: List[int], potions: List[int], success: int) -> List[int]:n, ans = len(spells), [0]*len(spells)potions.sort()for i in range(n):t = success/spells[i]pos = bisect.bisect_left(potions, t)ans[i] = len(potions)-posreturn ans

344 ms 34.3 MB Python3


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

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

LeetCode 2300. 咒语和药水的成功对数(二分查找)相关推荐

  1. 2022-6-13 咒语和药水的成功对数,替换字符后匹配,统计得分小于 K 的子数组数目,......

    1. 咒语和药水的成功对数 You are given two positive integer arrays spells and potions, of length n and m respec ...

  2. LeetCode 729. 我的日程安排表 I(set 二分查找)

    文章目录 1. 题目 2. 解题 2.1 set 二分查找 2.2 差分思想 1. 题目 实现一个 MyCalendar 类来存放你的日程安排.如果要添加的时间内没有其他安排,则可以存储这个新的日程安 ...

  3. [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找)

    [Golang]力扣Leetcode - 852. 山脉数组的峰顶索引(二分查找) 题目:符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < ...

  4. LeetCode 2187. 完成旅途的最少时间(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个数组 time ,其中 time[i] 表示第 i 辆公交车完成 一趟旅途 所需要花费的时间. 每辆公交车可以 连续 完成多趟旅途,也就是说,一辆 ...

  5. LeetCode 1901. 找出顶峰元素 II(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 一个 2D 网格中的 顶峰元素 是指那些 严格大于 其相邻格子(上.下.左.右)的元素. 给你一个 从 0 开始编号 的 m x n 矩阵 mat ,其中 ...

  6. LeetCode 1838. 最高频元素的频数(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 元素的 频数 是该元素在一个数组中出现的次数. 给你一个整数数组 nums 和一个整数 k . 在一步操作中,你可以选择 nums 的一个下标,并将该下标 ...

  7. LeetCode 792. 匹配子序列的单词数(二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 给定字符串 S 和单词字典 words, 求 words[i] 中是 S 的子序列的单词个数. 示例: 输入: S = "abcde" ...

  8. LeetCode 1631. 最小体力消耗路径(DFS + 二分查找)

    文章目录 1. 题目 2. 解题 1. 题目 你准备参加一场远足活动.给你一个二维 rows x columns 的地图 heights ,其中 heights[row][col] 表示格子 (row ...

  9. LeetCode 644. 最大平均子段和 II(二分查找)*

    文章目录 1. 题目 2. 解题 2.1 暴力超时 2.2 二分查找 1. 题目 给定一个包含 n 个整数的数组,找到最大平均值的连续子序列,且长度大于等于 k.并输出这个最大平均值. 样例 1: 输 ...

  10. LeetCode 793. 阶乘函数后K个零(二分查找)

    1. 题目 f(x) 是 x! 末尾是0的数量.(回想一下 x! = 1 * 2 * 3 * ... * x,且0! = 1) 例如, f(3) = 0 ,因为3! = 6的末尾没有0:而 f(11) ...

最新文章

  1. Gartner发布2020年数据与分析领域的十大技术趋势
  2. OpenStack计算节点AMQP5672报错
  3. One Day-XML:XSLT
  4. Python3读取HTML文件
  5. ELK学习9_ELK数据流传输过程_问题总结2
  6. ConcurrentModificationException并发修改异常
  7. Oracle SQL Access Advisor 说明
  8. jquery ajax传递data,基于jquery ajax中的data传递参数与后台工作的流程
  9. Servlet学习笔记(四)之请求转发与重定向(RequestDispatcher与sendRedirect)
  10. java基础知识---IO常用基础操作(一)
  11. SQL Server 2012 中 SSAS 多维数据浏览器已经废除
  12. 联想微型计算机扬天M4000e,联想扬天M4000e-00评测:傲腾内存加持下的商务整机
  13. bat脚本中添加注释
  14. 中英对照:30句经典英语广告词欣赏
  15. 本地生成RDL报表文件的创建工具
  16. faker造数据写入Excel表中
  17. 量子混沌:相互作用如何影响量子多体系统的局域化?
  18. uni-app,原生APP,关于苹果APP集成Sign in with Apple(通过Apple登录)后,APP内注册需要强制绑定手机号,审核被拒问题
  19. CSS 多列等高的几种实现方式
  20. C# MVC《捷信达酒店管理系统》项目研发技术总结文献

热门文章

  1. Elastic-Job使用
  2. 计算机查询成绩微信公众号,怎么在微信公众号上设置查询成绩?
  3. 对OMAP-L138的PSC模块的理解
  4. XMU 1613 刘备闯三国之三顾茅庐(一) 【并查集】
  5. 编辑图片加文字的软件哪个好?这三个软件还不错
  6. 使用ApachePOI复制pptx文件模板的幻灯片
  7. 【CLR】程序集查找与GAC
  8. [转] 海尔集团CEO张瑞敏演讲《人不成熟的几大特征》
  9. stata抓取html,stata reshape
  10. <Navigate>与useNavigate()