文章目录

  • 1. 题目
  • 2. 解题

1. 题目

小力将 N 个零件的报价存于数组 nums。
小力预算为 target,假定小力仅购买两个零件,要求购买零件的花费不超过预算,请问他有多少种采购方案。

注意:答案需要以 1e9 + 7 (1000000007) 为底取模,如:计算初始结果为:1000000008,请返回 1

示例 1:
输入:nums = [2,5,3,5], target = 6
输出:1
解释:预算内仅能购买 nums[0] 与 nums[2]。示例 2:
输入:nums = [2,2,1,9], target = 10
输出:4
解释:符合预算的采购方案如下:
nums[0] + nums[1] = 4
nums[0] + nums[2] = 3
nums[1] + nums[2] = 3
nums[2] + nums[3] = 10提示:
2 <= nums.length <= 10^5
1 <= nums[i], target <= 10^5

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

2. 解题

  • 排序,对每个零件 ,二分查找它之前的最大的可能的上限,都可以作为组合
class Solution {public:int purchasePlans(vector<int>& nums, int target) {sort(nums.begin(),nums.end());long long ans = 0, mod = 1e9+7;for(int i = 0; i < nums.size(); ++i){if(nums[i] >= target)break;int left = target - nums[i];//最大的 另一个值auto d = upper_bound(nums.begin(),nums.begin()+i,left) - nums.begin();// i 之前的 上限位置ans = (ans + d)%mod;}return ans;}
};

180 ms 58.6 MB C++


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

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

LeetCode LCP 28. 采购方案(排序 + 二分查找)相关推荐

  1. 51Nod-1090 3个数和为0【排序+二分查找】

    1090 3个数和为0 基准时间限制:1秒 空间限制:131072KB 分值:5难度:1级算法题 给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等.从中找出所有和 = 0的3 ...

  2. [Golang]力扣Leetcode - 374. 猜数字大小(二分查找)

    [Golang]力扣Leetcode - 374. 猜数字大小(二分查找) 题目:猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字. 请你猜选出的是哪个数字. 如果你猜错了,我 ...

  3. LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根

    LeetCode 69. x 的平方根:二分查找法实现自定义的函数:x 的平方根 题目描述 实现 int sqrt(int x) 函数. 计算并返回 x 的平方根,其中 x 是非负整数. 由于返回类型 ...

  4. leetcode - LCP 42. 玩具套圈 -二分 -坐标映射 -区间查找 - 坐标范围快速查找

    文章目录 解法1 - 给定圈,找套中的玩具 - 超时 解法 2 - 给定玩具找能套中它的圈 - 超时 解法 3 解法2的基础上加入 二分查找区间 - 通过 解法4 - 解法2的基础上 映射x的同时映射 ...

  5. LeetCode 1498. 满足条件的子序列数目(排序+二分查找+快速幂)

    1. 题目 给你一个整数数组 nums 和一个整数 target . 请你统计并返回 nums 中能满足其最小元素与最大元素的 和 小于或等于 target 的 非空 子序列的数目. 由于答案可能很大 ...

  6. LeetCode 275. H指数 II(二分查找)

    1. 题目 给定一位研究者论文被引用次数的数组(被引用次数是非负整数),数组已经按照升序排列.编写一个方法,计算出研究者的 h 指数. h 指数的定义: "h 代表"高引用次数&q ...

  7. LeetCode 475. 供暖器(双指针二分查找)

    文章目录 1. 题目 2. 解题 2.1 双指针 2. 二分查找 1. 题目 冬季已经来临. 你的任务是设计一个有固定加热半径的供暖器向所有房屋供暖. 现在,给出位于一条水平线上的房屋和供暖器的位置, ...

  8. POJ 2785 有多少种4个数相加等于0的方案(二分查找 or hash)

    文章目录 1.二分查找法 1.1 思路: 1.2 AC代码 2.hash查找法 2.1 思路: 2.2 Wrong Answer 代码 2.3 Time Limit Exceeded 代码 2.4 偷 ...

  9. leetcode练习一:数组(二分查找、双指针、滑动窗口)

    文章目录 一. 数组理论基础 二. 二分查找 2.1 解题思路 2.2 练习题 2.2.1 二分查找(题704) 2.2.2 搜索插入位置(题35) 2.2.3 查找排序数组元素起止位置(题34) 2 ...

最新文章

  1. 最新论文解读 | 神经网络“剪枝”的两个方法
  2. 图片缓存之内存缓存技术LruCache,软引用
  3. xctf php2,XCTF PHP2
  4. 悼念传奇,约翰询问#183;纳什和他的妻子艾丽西亚致敬,创建一个传奇,爱数学...
  5. Hadoop2.2.0+HA+zookeeper3.4.5详细配置过程+错误处理(一)
  6. HMM——前向后向算法
  7. 浏览器里面看到的表单数据映射到python_python爬虫入门01:教你在 Chrome 浏览器轻松抓包...
  8. matlab对经济指标分析,经济背景下的数据预测分析--基于matlab建模(郑铿城)
  9. 计算机网络(1)TCP和UDP
  10. 多继承完美闪避成员名冲突的问题
  11. java 开源im_开源的im即时通讯系统
  12. C#中MessageBox用法大全(附效果图)
  13. 学习 FPGA 经验与书籍
  14. 计算机基础(一):二进制详解
  15. 酷狗外链播放器html5,WP博客制作并添加酷狗外链播放器
  16. 【云原生】Kubernetes(k8s)Calico 客户端工具 calicoctl
  17. 自然语言处理(NLP)常用开源工具总结----不定期更新
  18. t3服务器补丁文件夹在哪,FM2017全补丁存放路径汇总 补丁放在哪个文件夹-游侠网...
  19. ubuntu不小心忘记开机密码
  20. 【Matlab】删除cell中所有的空白cell.

热门文章

  1. table取tr对象 vue_Vue笔记
  2. springboot springmvc mybatis_12道重点的Spring Boot面试题,帮你整理好了!
  3. 【机器学习】XGBoost集成算法——(理论+图解+python代码比较其他算法使用天池蒸汽数据)
  4. 【机器学习】自己手写实现线性回归,梯度下降 原理
  5. 01Pandas_数据结构
  6. 关于在软件中添加扫描二维码功能的详细步骤及对应的资源。
  7. java中 怎么获取bean_java普通类如何得到spring中的bean类
  8. 什么时候需要好教材和好教材是怎样的
  9. 上Google Adsense个人的一点体验
  10. Qt setMargin()和setSpacing() 的含义