LeetCode、2300. 咒语和药水的成功对数【中等,排序+二分】

文章目录

  • 前言
  • LeetCode、2300. 咒语和药水的成功对数【中等,排序+二分】
    • 题目及类型
    • 思路及代码
  • 资料获取

前言

博主介绍:✌目前全网粉丝2W+,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。

涵盖技术内容:Java后端、算法、分布式微服务、中间件、前端、运维、ROS等。

博主所有博客文件目录索引:博客目录索引(持续更新)

视频平台:b站-Coder长路


LeetCode、2300. 咒语和药水的成功对数【中等,排序+二分】

来源:LeetCode专题《LeetCode 75》

题目及类型

题目链接:LeetCode、2300. 咒语和药水的成功对数

类型:基础算法/二分


思路及代码

思路:

首先对药水能量强度数组进行排序,接着我们去遍历所有的咒语,接着我们对药水能量数组进行二分,通过使用咒语与药水能量乘积来进行二分寻找边界值,来确定成功对数。

image-20240119212337446

代码:

复杂度分析:时间复杂度O(n.logn);空间复杂度O(1)

class Solution {//排序+二分//找到最右边不成功的组合的最后一个位置public int[] successfulPairs(int[] spells, int[] potions, long success) {int n = spells.length, m = potions.length;//结果数组int[] res = new int[n];//对potions升序Arrays.sort(potions);//遍历所有的药水for (int i = 0; i < n; i ++) {int ans = 0;//二分int l = 0, r = m - 1;while (l < r) {//若是拆分为[l, mid - 1]、[mid, r],那么一旦有r = mid - 1,需要+1为l + r + 1int mid = (l + r + 1) >> 1;// System.out.printf("mid=%d\n", mid);if (check(1L * spells[i] * potions[mid], success)) {r = mid - 1;}else {l = mid;}}//找到目标值// System.out.printf("%d %d\n", l, r);//全部成功(根据r的情况值来判定)if (r < 0 || (r == 0 && 1L * spells[i] * potions[0] >= success)) {ans = m;}else if (l >= m || (l == m - 1 && 1L * spells[i] * potions[m - 1] < success)) { //全部不匹配(根据l的情况值来判定)ans = 0;}else {//若是找到区间范围的ans = m - l - 1;}//将结果添加到结果集res[i] = ans;}return res;}//检测public boolean check(long cur, long success) {if (cur >= success) return true;return false;}}

资料获取

大家点赞、收藏、关注、评论啦~

精彩专栏推荐订阅:在下方专栏👇🏻

  • 长路-文章目录汇总(算法、后端Java、前端、运维技术导航):博主所有博客导航索引汇总
  • 开源项目Studio-Vue—校园工作室管理系统(含前后台,SpringBoot+Vue):博主个人独立项目,包含详细部署上线视频,已开源
  • 学习与生活-专栏:可以了解博主的学习历程
  • 算法专栏:算法收录

更多博客与资料可查看👇🏻获取联系方式👇🏻,🍅文末获取开发资源及更多资源博客获取🍅


整理者:长路 整理时间:2024.1.19

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/416418.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VB6.0 从内存地址获取String内容

VB6.0开发&#xff0c;调用了DLL中的方法去获取两个字符串&#xff0c;但实际返回字符串的地址。 怎样从地址得到完整的字符串内容呢&#xff1f;方法如下&#xff0c;核心是oleaut32.dll中的SysAllocStringByteLen方法&#xff1a; Private Declare Function SysAllocString…

插件分享 Chrome浏览器实现外语翻译自由

【有道灵动翻译】使用有道翻译大模型&#xff0c;沉浸式网页翻译的首选工具&#xff01; 实时对照翻译:让任何网页变成对照。输入框即时翻译:输入中文轻松变英文。 &#x1f525;功能亮点&#x1f525;&#xff1a; 实时对照翻译&#xff1a;使用有道翻译大模型&#xff0c;无…

探索设计模式的魅力:“感受单例模式的力量与神秘” - 掌握编程的王牌技巧

在软件开发的赛场上&#xff0c;单例模式以其独特的魅力长期占据着重要的地位。作为设计模式中的一员&#xff0c;它在整个软件工程的棋盘上扮演着关键性角色。本文将带你深入探索单例模式的神秘面纱&#xff0c;从历史渊源到现代应用&#xff0c;从基础实现到高级技巧&#xf…

GET气象台最新发布的气象预警数据

1. 项目需求&#xff1a; 获取济南地区或整个山东地区的所有城市气象灾害预警信息 2. 对接流程 请求接口请求参数返回内容对接数据 1. 请求接口 请将线路地址设置在服务端, 接口线路有多条, 其中一条出问题, 可以及时切换到另外一条线路 线路1&#xff1a;http://v1.yiket…

01 MyBatisPlus快速入门

1. MyBatis-Plus快速入门 版本 3.5.31并非另起炉灶 , 而是MyBatis的增强 , 使用之前依然要导入MyBatis的依赖 , 且之前MyBatis的所有功能依然可以使用.局限性是仅限于单表操作, 对于多表仍需要手写 项目结构&#xff1a; 先导入依赖&#xff0c;比之前多了一个mybatis-plus…

VUE--组件通信(父子)

1、什么是组件通信 组件通信就是指组件与组件之间的数据传递。因为组件的数据是独立的&#xff0c;无法直接访问其他组件的数据&#xff0c;想获取其他组件的数据&#xff0c;就需要用到组件通信。 2、组件关系分类&#xff08;如图&#xff09; ● 父子关系&#xff08;props…

SpringBoot的yml多环境配置3种方法

文章目录 SpringBoot的yml多环境配置3种方法1、多个yml文件1.1、创建多个配置文件applicaiton.yml中指定配置 2、单个yml文件3、在pom.xml中指定环境配置3.1、创建多个配置文件3.2、在application.yml中添加多环境配置属性3.3、在pom.xml中指定使用的配置3.4、问题&#xff1a;…

Java中打印图案最常用的25个图案程序

Java是公认的最流行的编程语言&#xff0c;因为它的简单性和多功能性。还可以使用它开发各种应用程序&#xff0c;包括Web、移动和桌面应用程序。此外&#xff0c;Java为开发人员提供了强大的工具来轻松高效地创建复杂的程序。Java最有前途的特性之一是它能够创建可以以特定格式…

[已解决]前端使用el-upload,后端使用文件上传阿里云报错:异常信息:java.lang.NullPointerException: null

前端使用el-upload&#xff0c;后端使用文件上传阿里云报错&#xff1a; 报错原因&#xff1a;前端image参数未传进去 解决方法&#xff1a;在el-upload添加属性 name"image" 文件传进去了&#xff01;

杜卡迪Panigale v4 SP2、Street Fighter v4 SP正式发布,购车送GP观赛

最新款杜卡迪的Panigale v4 SP2、Street Fighter v4 SP国内正式上市&#xff0c;售价分别是382500元和310500元&#xff0c;Panigale售价比老款降低了2.55万元&#xff0c;而街霸的SP版则是国内首次上市。 SP版一直都是杜卡迪的限量款&#xff0c;标榜着高性能、高配置&#xf…

三、RHCE--时间服务器

三、RHCE--时间服务器 一、简介二、软件安装三、配置时间服务器客户端四、配置时间服务器服务端五、示例&#xff1a; 一、简介 NTP 是网络时间协议&#xff08;Network Time Protocol&#xff09;的简称&#xff0c;通过 udp 123 端口进行网络时钟同步。 Chrony是一个开源自由…

C语言——程序的版式

前言 版式虽然不会影响程序的功能&#xff0c;但会影响可读性。程序的版式追求清晰、美观&#xff0c;是程序风格的重要构成因素。可以把程序的版式比喻为“书法”。好的“书法”可让人对程序一目了然&#xff0c;看得兴致勃勃。差的程序“书法”如螃蟹爬行&#xff0c;让人看得…