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

2023-11-10 09:05
文章标签 成功 对数 2300 咒语 药水

本文主要是介绍2300.咒语和药水的成功对数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​​题目来源:

        leetcode题目,网址:2300. 咒语和药水的成功对数 - 力扣(LeetCode)

解题思路:

       将 potions 数组排序后二分查找能够满足要求的最小值即可。

解题代码:

class Solution {
public:vector<int> successfulPairs(vector<int>& spells, vector<int>& potions, long long success) {vector<int> res;sort(potions.begin(),potions.end());for(int i=0;i<spells.size();i++){long minPotion=success/spells[i]+(success%spells[i]==0?0:1);res.push_back(getNum(potions,minPotion));}return res;}int getNum(vector<int>& potions,long minPotion){int start=0;int end=potions.size()-1;if(potions[start]>=minPotion){return end-start+1;}start++;while(start<=end){int mid=start+(end-start)/2;if(potions[mid]>=minPotion && potions[mid-1]<minPotion){return potions.size()-mid;}else if(potions[mid]>=minPotion){end=mid-1;}else{start=mid+1;}}return 0;}
};

总结:

        注意边界条件。

        官方题解给出了两种 解法。第一种是二分。第二种双指针,是将两个数组都排序后使用双指针查找,然后再按原来的顺序输出。

        C++ upper_bound(begin,end,num) 从数组的begin 位置到 end-1 位置二分查找第一个大于num 的数字。

        C++ lower_bound(begin,end,num) 从数组的begin 位置到 end-1 位置二分查找第一个小于等于 num 的数字。


这篇关于2300.咒语和药水的成功对数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/381709

相关文章

我成功在本地打开了Cesium啦!

1首先下载Node.js,我是跟着这篇下载的,https://zhuanlan.zhihu.com/p/77594251,不过这后面的我没弄对Cesium环境配置也没影响。 另外:我看其他推文说,在终端写node -v和npm-v查node和npm的版本可以检测node和npm是否下载成功。 2然后我在CesiumB站官号看的教学视频,跟着下载Cesium源代码。 Cesium基础入门1-零

Android三方登录,微信登录成功后闪屏问题

最近项目要加一个微信登录的功能,发现登录成功后进入WXEntryActivity界面,这个界面是微信来处理接受登录,分享等结果的。关闭的时候this.finish();界面闪烁,虽然不影响功能,但看起来狠辣眼,然后我就想是不是主题的原因,我索性将这个界面的主题设置为透明的 <activity android:name=".wxapi.WXEntryActivity"android:label="

2300年都无人能知有长度不同的伪≌射线

黄小宁 【摘要】自有射线概念后的2300年里一直无人能知有长度不同的射线。保距变换和≌图概念是能放大无穷大倍的思维望远镜使人能一下子看到有长度不同的伪重合、伪≌射线。 变量x所取各数也均由x代表,x代表其变域(x所有能取的数组成的集)内任一元。设集A={x}表A各元均由x代表,{x}中变量x的变域是A。其余类推。“实数集”R所有非负元x≥0组成R+={x≥0},这里的x≥0不是表示x可取一切非负

解决解压缩时的错误提示 “无法成功完成操作, 因为文件包含病毒或者潜在垃圾文件“

近期, 有一些朋友反馈在解压zip压缩包, 或者在安装软件的过程中出现了下面的错误提示: "无法成功完成操作, 因为文件包含病毒或者潜在垃圾文件" "Operation did not complete successfully because the file contains a virus or potentially unwanted software" 上述错误一般

Flink实时计算指标对数方案

来源:大数据技术与架构读者投稿 作者:诸葛子房 点击右侧关注,大数据开发领域最强公众号! 点击右侧关注,暴走大数据! By  大数据技术与架构 作者简介: 诸葛子房 ,目前就职于一线互联网公司,从事大数据相关工作,了解互联网、大数据相关内容,一直在学习的路上 。

成功进行云迁移与现代化的7个关键步骤

随着全球逐渐从供应链噩梦和因封锁及控制措施引起的通胀急剧上升中恢复正常,一个显而易见的问题是:运营成本必须降低。 但这不仅仅是成本问题;商业领袖还必须准备好增加股东价值,并为客户和目标市场提供最优价值。尽管实现这一目标的方法有很多,但没有一种方法能在云迁移的所有三个方面达到这种效果。 然而,云迁移和现代化的实施部分往往充满挑战,这些挑战可能迅速逆转甚至阻碍任何已经实现的收益。以下是七个成功的云

数据结构基础之《(2)—对数器》

一、认识对数器 1、你在网上找到了某个公司的面试题,你想了好久,感觉自己会做,但是你找不到在线测试, 2、你和朋友交流面试题,你想了好久,感觉自己会做,但是你找不到在线测试 3、你在网上做笔试,但是前几个测试用例都过了,突然一个巨大无比数据量来了,结果你的代码报错了,如此大的数据量根本看不出哪错了 二、对数器怎么用 1、你想要测的方法a(你设计的流程时间复杂度低,但是不知道对不对) 2、实现

用来作弊的药水(快速幂)

链接: https://www.nowcoder.com/acm/contest/90/L 来源:牛客网 题目描述 在一个风雨交加的夜晚,来自异世界的不愿透露姓名的TMK同学获得了两种超强药水A、B。根据说明书,TMK知道了这两种药水的作用:     (1)药水A能使人的生命值提高,每饮用1个单位能使他生命值变成原来的x倍,即每饮用p个单位能使他的生命值变成原来的x^p(x的p

maven依赖成功引入添加,但是提示程序包不存在

启动时显示程序包不存在 查看了依赖,是存在在该依赖模块的,也在父依赖添加了子依赖的module模块 解决方案 方案1,不过对我没效果 方案2 重载父模块即可成功运行

【HDU】5958 New Signal Decomposition【离散对数下的FFT】

题目链接:【HDU】5958 New Signal Decomposition 在此先感谢小q对我的指导,没有q老师的帮助,估计永远也做不出来了。 首先我们考虑对这个式子做离散对数。令 g g为pp的某个原根,则有: bi=∑p−1j=0aj⋅r(i,j) \quad b_i=\sum_{j=0}^{p-1}a_j\cdot r(i,j) bi=∑p−1j=0aj⋅2sin32πi⋅j