当前位置: 首页 > 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;}
}

性能

相关文章:

  • Ubuntu 安装并使用 Elasticsearch
  • Go语言同步原语与数据竞争:数据竞争的检测工具
  • 【分析学】 实数
  • AI 产品设计头脑风暴
  • MySQL 数据库自动备份批处理工具介绍
  • B3865 [GESP202309 二级] 小杨的 X 字矩阵
  • Tomcat配置学习
  • 电阻篇---下拉电阻的取值
  • ASR-PRO语音识别可能出现的问题
  • Flutter 本地存储全面指南:从基础到高级实践
  • cocos2 使用 Layout 组件后,子节点 Label 高度变化后,抖动问题
  • AUTOSAR图解==>AUTOSAR_SRS_GPTDriver
  • C语言:Linux libc和glibc的历史
  • 1. NVIDIA驱动安装
  • SpringCloud框架全面学习指南
  • AC耦合与DC耦合
  • 本地访问远程vps中的sqlite数据库中的内容之(一)建立并访问ftp服务器
  • Linux进程间通信(上)
  • 思科基本理论
  • 第2讲、LangChain应用架构与核心组件:构建LLM应用的基石
  • 山东网站建设开发外包/上海百网优seo优化公司
  • 政府类网站建设/python培训
  • 福建seo网站/朝阳网站建设
  • 你会怎么做外国的网站吗/关于校园推广的软文
  • 重庆知名做网站的公司/百度竞价推广的技巧
  • 做网站的成功案例/网站优化排名技巧