当前位置: 首页 > news >正文

LeetCode 2389.和有限的最长子序列

题目

给你一个长度为 n 的整数数组 nums ,和一个长度为 m 的整数数组 queries 。

返回一个长度为 m 的数组 answer ,其中 answer[i] 是 nums 中 元素之和小于等于 queries[i] 的 子序列 的 最大 长度  。

子序列 是由一个数组删除某些元素(也可以不删除)但不改变剩余元素顺序得到的一个数组。

思路

1.关键词:子序列 求和

2.要求的和数组元素在数组中的顺序是无关的

3.先对数组排个序,方便回答询问(把小的放进去)

4.前缀和

5.回答询问:在前缀和上二分

代码

class Solution {public int[] answerQueries(int[] nums, int[] queries) {Arrays.sort(nums);// 原地前缀和,节省空间复杂度for (int i = 1; i < nums.length; i++) {nums[i] += nums[i - 1];}// 原地操作,节省空间复杂度for (int j = 0; j < queries.length; j++) {queries[j] = lowerBound(nums, queries[j] + 1);}return queries;}private int lowerBound(int[] nums, int target) {int left = 0, right = nums.length - 1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return left;}
}

性能

http://www.xdnf.cn/news/1052767.html

相关文章:

  • libuv 框架
  • RabbitMQ死信队列
  • 【测开面试题】八股文总结
  • 快速上手文本向量模型 Sentence-Transformers
  • Java正则分组:高效捕获与引用技巧
  • InnoDB的undo日志的数据结构
  • 从0开始学习R语言--Day24--稀疏建模
  • 基于MSE-Nacos实现服务的动态发现和配置动态管理
  • 车载软件架构 --- 汽车中央控制单元HPC软件架构方案实例
  • 生成对抗网络(GANs)入门介绍指南:让AI学会“创造“的魔法(一)
  • 已知路由表和分组的目的地址求对应的下一跳地址
  • 一阶偏微分方程特征线与解分析
  • C#最佳实践:为何应减少嵌套
  • JavaScript学习笔记
  • java基础面试题。
  • 信息学奥赛一本通 1541:【例 1】数列区间最大值
  • C# 枚举(位标志)
  • FastAPI-MCP构建自定义MCP工具实操指南
  • 敏捷开发的特点
  • 【计算机 电脑任务管理器中,性能界面的各项指标的含义及影响】
  • idea2024使用卡顿
  • 《k8s 部署》常见报错类型1
  • 华为OD-2024年E卷-英文输入法[100分] -- python
  • [Java 基础]日期时间
  • 力扣的SQL
  • Spring AI 对话记忆持久化实战-MySQL方案
  • 【分析学】 从确界定理出发——实数系完备定理
  • Proteus8.17仿真51单片机驱动ST7920 LCD12864
  • MyBatisPlus 全面学习路径
  • 《仿盒马》app开发技术分享-- 回收金提现记录查询(端云一体)