news 2026/5/10 3:36:32

D.二分查找-进阶——2389. 和有限的最长子序列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
D.二分查找-进阶——2389. 和有限的最长子序列

题目链接:2389. 和有限的最长子序列(简单)

算法原理:

解法:二分查找

8ms击败25.52%

时间复杂度O(Nlogn)

①由于 结果数组存的是子序列最大长度,而不是子序列,所以可以打乱顺序,因此可以排序,进而使用二分

②由于结果数组是nums中 元素之和小于等于queries[i]的长度,所以用到的模型是求最右端点模型

③由于算的是累加和,所以可以用前缀和的思想,排序后求对应前缀和,在找到最右端点后,其下标就是咱们需要的下标

④小细节:最终left和right停留的位置是≤queries[i]的位置,但如果这个位置>queries[i]则说明left和right一直在第一个位置,且第一个位置就>queries[i],符合条件的个数是0

Java代码:

class Solution { public int[] answerQueries(int[] nums, int[] queries) { int n=nums.length,m=queries.length; int[] ret=new int[m];int index=0; //定义前缀和数组 int[] pre=new int[n]; Arrays.sort(nums); pre[0]=nums[0]; for(int i=1;i<n;i++) pre[i]=pre[i-1]+nums[i]; for(int x:queries){ int left=0,right=n-1; //找最右端点 while(left<right){ int mid=left+(right-left+1)/2; if(pre[mid]>x) right=mid-1; else left=mid; } ret[index++]=pre[left]<=x?left+1:0; } return ret; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/4 17:07:27

百度网盘下载提速终极方案:第三方客户端实战指南

还在为百度网盘的龟速下载而抓狂&#xff1f;官方客户端的限速策略让无数用户头疼不已。今天&#xff0c;我将为你详细介绍基于BaiduPCS-Web的百度网盘第三方客户端解决方案&#xff0c;帮助你突破速度限制&#xff0c;享受极速下载体验。 【免费下载链接】baidupcs-web 项目…

作者头像 李华
网站建设 2026/5/9 21:57:10

Python多线程实战:12306抢票系统的并发处理优化

一、引言&#xff1a;为什么12306抢票需要多线程&#xff1f; 在12306抢票系统中&#xff0c;并发处理是提升抢票成功率的关键因素之一。抢票过程涉及多个耗时操作&#xff1a; CDN筛选&#xff1a;需要测试大量CDN节点的响应速度用户状态检查&#xff1a;需要定期验证登录状态…

作者头像 李华
网站建设 2026/5/9 14:24:03

23、结合 XLink、XPath 和 XPointer 访问子资源

结合 XLink、XPath 和 XPointer 访问子资源 在实际的数据访问中,我们常常需要获取文档的部分信息而非整个文档。结合 XLink、XML 路径语言(XPath)和 XML 指针语言(XPointer)可以提供这样一种访问文档特定部分的机制。 1. 结合 XLink、XPath 和 XPointer 访问子资源 之前…

作者头像 李华
网站建设 2026/4/30 21:28:09

27、XML数据绑定与记录集导航全解析

XML数据绑定与记录集导航全解析 1. 数据来源与记录集构建 整个数据源包含在 <inventory> 元素中,其中有两个记录,每个记录由 <catalog> 元素定义。每个记录包含六个字段: <name> 、 <cost> 、 <clarity> 、 <carat> 、 …

作者头像 李华
网站建设 2026/5/8 16:04:18

OpenBoardView终极指南:如何免费查看和分析.brd电路板文件

OpenBoardView终极指南&#xff1a;如何免费查看和分析.brd电路板文件 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 在电子设计和硬件维修领域&#xff0c;.brd电路板文件的查看与分析是工程师日常工作中…

作者头像 李华
网站建设 2026/5/9 22:06:07

38、探索CDF技术:从基础到实践

探索CDF技术:从基础到实践 1. CDF简介 CDF(Channel Definition Format)是一种XML技术,它允许网站发布者向其终端用户订阅者定期或规律地提供信息,这些信息通常是更新的内容,甚至包括软件更新。网站发布者创建CDF文档来处理、组合或浓缩他们的信息,然后根据请求或按规律…

作者头像 李华