news 2026/6/24 22:04:10

记力扣LCP28.采购方案 练习理解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
记力扣LCP28.采购方案 练习理解

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

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

思路:
因为只需要买两个零件考虑到只需要计算两个数值的和是否在预算以内即可,故而采用双指针的办法,依次判断之和是否满足条件即可。最后结果对1000000007取余即可(因为可能零件和预算变大之后方法也会变多)。主要难理解的可能是其中判断依据排序后为什么是right-left是一个数学问题,他如果最小的和最大的和满足题意,等价于一个搭配问题,两个两个取能取几次,是个排列问题,他的次数为最右边的序数减去最左边的序数就是次数。

class Solution: def purchasePlans(self,nums:List[int],target:int)->int: left,right=0,len(nums)-1 count=0 nums.sort() while left<right: if nums[left]+nums[right]<=target: count+=right-left left+=1 else: right-=1 return count%1000000007

难点分析:

  1. 排序保证了 “单调性”:左指针固定时,右指针往左的所有数都更小,因此和左指针的和也更小;
  2. 双指针的 “贪心”:找到最大的合法右指针,就能覆盖所有更小的右指针的合法情况;
  3. 计数的 “数学本质”:left+1right的元素个数 = 终止索引 - 起始索引 =right - left(起始索引是 left+1,终止索引是 right → 个数 = right - (left+1) + 1 = right - left)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 16:28:39

TachiyomiJ2K通知系统完整配置指南:从基础设置到高级功能

TachiyomiJ2K通知系统完整配置指南&#xff1a;从基础设置到高级功能 【免费下载链接】tachiyomiJ2K Free and open source manga reader for Android 项目地址: https://gitcode.com/gh_mirrors/ta/tachiyomiJ2K TachiyomiJ2K作为Android平台上最优秀的免费开源漫画阅读…

作者头像 李华
网站建设 2026/6/24 10:00:26

Brush引擎深度解析:高斯泼溅技术的革命性突破

在3D重建技术快速发展的今天&#xff0c;Brush项目以其创新的高斯泼溅算法架构&#xff0c;为实时3D渲染和训练领域带来了颠覆性变革。作为一项基于WebGPU的跨平台3D重建解决方案&#xff0c;Brush不仅实现了高质量的场景重建&#xff0c;更在渲染效率和兼容性方面达到了业界领…

作者头像 李华
网站建设 2026/6/24 6:16:11

重新定义企业级开发:Vue DevUI如何解决现代前端三大核心痛点

重新定义企业级开发&#xff1a;Vue DevUI如何解决现代前端三大核心痛点 【免费下载链接】vue-devui 基于全新 DevUI Design 设计体系的 Vue3 组件库&#xff0c;面向研发工具的开源前端解决方案。 项目地址: https://gitcode.com/DevCloudFE/vue-devui 在Vue3技术栈快速…

作者头像 李华
网站建设 2026/6/23 23:54:52

HyperDown:打造极致体验的高性能Markdown解析器

HyperDown&#xff1a;打造极致体验的高性能Markdown解析器 【免费下载链接】HyperDown 一个结构清晰的&#xff0c;易于维护的&#xff0c;现代的PHP Markdown解析器 项目地址: https://gitcode.com/gh_mirrors/hy/HyperDown 在当今内容创作蓬勃发展的时代&#xff0c;…

作者头像 李华
网站建设 2026/6/23 19:10:55

Apache PDFBox 7大常见问题终极解决方案

Apache PDFBox 7大常见问题终极解决方案 【免费下载链接】pdfbox Apache PDFBox: 是一个用于处理PDF文档的开源Java库。它允许开发者读取、写入、操作和打印PDF文档。适合Java开发者&#xff0c;特别是那些需要处理PDF文档的业务应用开发者。特点包括支持PDF文档的多种标准格式…

作者头像 李华