Leetcode 2300. 咒语和药水的成功对数

news/2024/12/21 11:02:20/

1.题目基本信息

1.1.题目描述

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

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

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

1.2.题目地址

https://leetcode.cn/problems/successful-pairs-of-spells-and-potions/description/

2.解题方法

2.1.解题思路

从spells中遍历每一个魔法spell,并用二分法从升序排列后的potions中找到第一个potions[i]+spell >= success的i,len(potions)-i即为返回数组对应魔法的成功组合数

2.2.解题步骤

第一步,将药水数组进行升序排列

第二步,遍历spells,对每个spell,使用二分法获取第一个potions[i]+spell >= success的i,对应的spell的成功组合数即为len(potions)-i,将结果一项一项添加到结果数组中,最后返回结果数组。

3.解题代码

Python代码

class Solution:def successfulPairs(self, spells: List[int], potions: List[int], success: int) -> List[int]:# 从spells中遍历每一个魔法spell,并用二分法从升序排列后的potions中找到第一个potions[i]+spell >= success的i,len(potions)-i即为返回数组对应魔法的成功组合数# 第一步,将药水数组进行升序排列# 第二步,遍历spells,对每个spell,使用二分法获取第一个potions[i]+spell >= success的i,对应的spell的成功组合数即为len(potions)-i,将结果一项一项添加到结果数组中,最后返回结果数组。potions.sort()result=[0]*len(spells)for i in range(len(spells)):# 红:potions[i]+spell<success,蓝:potions[i]+spell>=success;找到第一个蓝left,right=0,len(potions)while left<right:mid=(right-left)//2+leftif spells[i]*potions[mid]<success:left=mid+1else:right=midresult[i]=len(potions)-right# print(result)return result

4.执行结果

在这里插入图片描述


http://www.ppmy.cn/news/1534300.html

相关文章

next 从入门到精通

next 从入门到精通 相关链接 演示地址 演示地址 源码地址 源码地址 获取更多 获取更多 hello 大家好&#xff0c;我是 数擎科技&#xff0c;今天来跟大家聊聊 Next.js 如果你遇到任何问题&#xff0c;欢迎联系我 m-xiaozhicloud 什么是 Next.js Next.js 是一个基于 Reac…

ST-GCN模型实现花样滑冰动作分类

加入深度实战社区:www.zzgcz.com&#xff0c;免费学习所有深度学习实战项目。 1. 项目简介 本项目实现了A042-ST-GCN模型&#xff0c;用于对花样滑冰动作进行分类。花样滑冰作为一项融合了舞蹈与竞技的运动&#xff0c;其复杂的动作结构和多变的运动轨迹使得动作识别成为一个具…

抖去推数字人---技术本地服务器技术开发步骤

AI数字人制作流程大致可以分为以下几个关键步骤&#xff1a; 虚拟形象设计&#xff1a;设计虚拟人物的外观和特征&#xff0c;可以手工完成&#xff0c;也可以利用计算机图形学和机器学习算法自动生成。 驱动/动作捕捉&#xff1a;使用动作捕捉技术记录真实演员的动作&#xf…

论文阅读:多模态医学图像融合方法的研究进展

摘要 背景&#xff1a; 多模态融合技术可将多模态的医学图像融合到单模态的图像中&#xff0c;且单模态图像具有多种模态图像间的互补信息&#xff0c; 从而在单一图像中得到充足的便于临床诊断的信息。 贡献&#xff1a; 本文将多模态医学图像融合方法整理为两种&#xff0…

AQS原理(AbstractQueuedSynchronizer)

本篇为 [并发与多线程系列] 的第四篇&#xff0c;对应Java知识体系脑图中的 并发与多线程 模块。 这一系列将对Java中并发与多线程的内容来展开。 AQS原理&#xff08;AbstractQueuedSynchronizer&#xff09; AQS原理&#xff08;AbstractQueuedSynchronizer&#xff09;AQS整…

关系数据库标准语言SQL(11,12)

目录 带有EXISTS谓词的子查询 exists谓词 例子 not exists谓词 例子 不同形式的查询间的替换 用EXISTS/NOT EXISTS实现全称量词 用EXISTS/NOT EXISTS:实现逻辑蕴涵 集合查询 并操作UNION 交操作INTERSECT 差操作EXCEPT 基于派生表的查询 select语句的基本格式 带有…

C(十)for循环 --- 黑神话情景

前言&#xff1a; "踏过三界宝刹&#xff0c;阅过四洲繁华。笑过五蕴痴缠&#xff0c;舍过六根牵挂。怕什么欲念不休&#xff0c;怕什么浪迹天涯。步履不停&#xff0c;便是得救之法。" 国际惯例&#xff0c;开篇先喝碗鸡汤。 今天&#xff0c;杰哥写的 for 循环相…

【Android 13源码分析】Activity生命周期之onCreate,onStart,onResume-1

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…