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

【论文阅读】2736. 最大和查询-2023.11.17

题目:

2736. 最大和查询

给你两个长度为 n 、下标从 0 开始的整数数组 nums1 和 nums2 ,另给你一个下标从 1 开始的二维数组 queries ,其中 queries[i] = [xi, yi] 。

对于第 i 个查询,在所有满足 nums1[j] >= xi 且 nums2[j] >= yi 的下标 j (0 <= j < n) 中,找出 nums1[j] + nums2[j] 的 最大值 ,如果不存在满足条件的 j 则返回 -1 。

返回数组 answer ,其中 answer[i] 是第 i 个查询的答案。

示例 1:

输入:nums1 = [4,3,1,2], nums2 = [2,4,9,5], queries = [[4,1],[1,3],[2,5]]
输出:[6,10,7]
解释:
对于第 1 个查询:xi = 4且 yi = 1,可以选择下标 j = 0 ,此时 nums1[j] >= 4且 nums2[j] >= 1。nums1[j] + nums2[j]等于 6 ,可以证明 6 是可以获得的最大值。
对于第 2 个查询:xi = 1 且 yi = 3 ,可以选择下标 j = 2,此时 nums1[j] >= 1且 nums2[j] >= 3。nums1[j] + nums2[j]等于 10 ,可以证明 10 是可以获得的最大值。
对于第 3 个查询:xi = 2且 yi = 5,可以选择下标 j = 3 ,此时 nums1[j] >= 2且 nums2[j] >= 5。nums1[j] + nums2[j]等于 7 ,可以证明 7 是可以获得的最大值。
因此,我们返回 [6,10,7]。

示例 2:

输入:nums1 = [3,2,5], nums2 = [2,3,4], queries = [[4,4],[3,2],[1,1]]
输出:[9,9,9]
解释:对于这个示例,我们可以选择下标 j = 2,该下标可以满足每个查询的限制。

示例 3:

输入:nums1 = [2,1], nums2 = [2,3], queries = [[3,3]]
输出:[-1]
解释:示例中的查询 xi = 3 且 yi= 3 。对于每个下标 j ,都只满足 nums1[j] < xi或者 nums2[j] <yi。因此,不存在答案。 

提示:

  • nums1.length == nums2.length 
  • n == nums1.length 
  • 1 <= n <= 105
  • 1 <= nums1[i], nums2[i] <= 109 
  • 1 <= queries.length <= 105
  • queries[i].length == 2
  • xi == queries[i][1]
  • yi == queries[i][2]
  • 1 <= xi, yi <= 109

解答:

 

代码:

class Solution {public int[] maximumSumQueries(int[] nums1, int[] nums2, int[][] queries) {int n=nums1.length;int[][] sortedNums=new int[n][2];for(int i=0;i<n;i++){sortedNums[i][0]=nums1[i];sortedNums[i][1]=nums2[i];}Arrays.sort(sortedNums,(a,b)->b[0]-a[0]);int q=queries.length;int[][] sortedQueries=new int[q][3];for(int i=0;i<q;i++){sortedQueries[i][0]=i;sortedQueries[i][1]=queries[i][0];sortedQueries[i][2]=queries[i][1];}Arrays.sort(sortedQueries,(a,b)->b[1]-a[1]);List<int[]> stack=new ArrayList<int[]>();int[] answer=new int[q];Arrays.fill(answer,-1);int j=0;for(int[] query:sortedQueries){int i=query[0],x=query[1],y=query[2];while(j<n&&sortedNums[j][0]>=x){int[] pair=sortedNums[j];int num1=pair[0];int num2=pair[1];while(!stack.isEmpty()&&stack.get(stack.size()-1)[1]<=num1+num2){stack.remove(stack.size()-1);}if(stack.isEmpty()||stack.get(stack.size()-1)[0]<num2){stack.add(new int[]{num2,num1+num2});}j++;}int k=binarySearch(stack,y);if(k<stack.size()){answer[i]=stack.get(k)[1];}}return answer;}public int binarySearch(List<int[]> list,int target){int low=0,high=list.size();while(low<high){int mid=low+(high-low)/2;if(list.get(mid)[0]>=target){high=mid;}else{low=mid+1;}}return low;}
}

结果:

相关文章:

【论文阅读】2736. 最大和查询-2023.11.17

题目&#xff1a; 2736. 最大和查询 给你两个长度为 n 、下标从 0 开始的整数数组 nums1 和 nums2 &#xff0c;另给你一个下标从 1 开始的二维数组 queries &#xff0c;其中 queries[i] [xi, yi] 。 对于第 i 个查询&#xff0c;在所有满足 nums1[j] > xi 且 nums2[j]…...

2. zk集群部署

简介 上一篇文章我们已经把环境准备好了&#xff0c;jdk也配置好了&#xff0c;下面我们开始把zk部署起来 hadoop环境准备 创建zk用户 useradd zk -d /home/zk echo "1q1w1e1r" | passwd --stdin zk上传zk包 拷贝zk包到/home/zk目录,这里的zk版本为 3.6.3 scp…...

抖音快手判断性别、年龄自动关注脚本,按键精灵开源代码!

这个是支持抖音和快手两个平台的&#xff0c;可以进入对方主页然后判断对方年龄和性别&#xff0c;符合条件的关注&#xff0c;不符合条件的跳过下一个ID&#xff0c;所以比较精准&#xff0c;当然你可以二次开发加入更多的平台&#xff0c;小红书之类的&#xff0c;仅供学习&a…...

IDEA软件使用步骤

1.IDEA概述 IDEA全称InelliJ IDEA,是用于java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最好的工具。 集成环境&#xff1a;把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试扽过多种功能综合到一起的开发工具。 下载&#xff1a;https…...

设计模式-11-模板模式

经典的设计模式有23种&#xff0c;但是常用的设计模式一般情况下不会到一半&#xff0c;我们就针对一些常用的设计模式进行一些详细的讲解和分析&#xff0c;方便大家更加容易理解和使用设计模式。 1-什么是模板模式 模板模式&#xff0c;全称是模板方法设计模式&#xff0c;英…...

【技术分享】EIGRP stub实验

【赠送】IT技术视频教程&#xff0c;白拿不谢&#xff01;思科、华为、红帽、数据库、云计算等等https://xmws-it.blog.csdn.net/article/details/117297837?spm1001.2014.3001.5502【微/信/公/众/号&#xff1a;厦门微思网络】 拓扑图&#xff1a; R1配置&#xff1a; route…...

Python 爬虫 AES DES加密反爬

当你遇到需要处理 AES 或 DES 加密的反爬虫机制时&#xff0c;Python 可以通过使用相应的库来解决这类问题。首先&#xff0c;我们需要理解 AES 和 DES 加密是什么&#xff1a; AES (Advanced Encryption Standard)&#xff1a;一种广泛使用的对称加密算法&#xff0c;它使用相…...

(论文阅读30/100)Convolutional Pose Machines

30.文献阅读笔记CPMs 简介 题目 Convolutional Pose Machines 作者 Shih-En Wei, Varun Ramakrishna, Takeo Kanade, and Yaser Sheikh, CVPR, 2016. 原文链接 https://arxiv.org/pdf/1602.00134.pdf 关键词 Convolutional Pose Machines&#xff08;CPMs&#xff09;…...

vue3实现数据大屏内数据向上滚动,鼠标进入停止滚动 vue3+Vue3SeamlessScroll

1.效果图 2.npm下载依赖及main.js文件配置 npm install vue3-seamless-scroll --saveimport vue3SeamlessScroll from vue3-seamless-scroll;app.use(vue3SeamlessScroll) 3.html代码 <!-- scrollFlag为true时再渲染,vue3只要涉及到传值子页面需要加flag判断&#xff0c;否…...

WPF显示3D图形

C# 中的 WPF (Windows Presentation Foundation) 支持显示3D图形。WPF 使用 DirectX 作为底层图形引擎&#xff0c;这意味着它可以处理包括3D图形在内的复杂渲染任务。 在 WPF 中&#xff0c;你可以使用一些内置的类和控件来创建和显示3D对象。这包括 Viewport3D, Camera, Mod…...

Xrdp+Cpolar实现远程访问Linux Kali桌面

XrdpCpolar实现远程访问Linux Kali桌面 文章目录 XrdpCpolar实现远程访问Linux Kali桌面前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于…...

赚钱

《赚钱》 作者&#xff0f;罗光记 赚钱劳身影未安&#xff0c; 岁月匆匆易逝难。 银钱到手笑颜开&#xff0c; 酒醉灯昏影独寒。 花前月下欢声起&#xff0c; 万金财富待来年。 诗酒飘香梦中笑&#xff0c; 人生何求更多钱。...

Django command执行脚本

python web项目中经常会使用到脚本&#xff0c;一般来说有两种很简单的方法&#xff0c;一种是直接python function&#xff0c;另一种就是 django 自定义command。 对比常规脚本 这里举个简单的例子&#xff0c;比如初始化数据、文件名称为initialize_data.py &#xff08;1…...

GLSL: Shader cannot be patched for instancing.

最近在 unity 里碰到了这么一个错误&#xff0c;只有这么点信息&#xff0c;让人看着挺懵逼的&#xff0c;后来发现&#xff0c;是因为 unity 的 terrain 组件在设置里勾了 Draw Instanced 选项导致的&#xff0c;感觉应该是 unity 的 bug。 因为错出在 2021&#xff0c;2022就…...

Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )

文章目录 一、表查询数据准备及测试环境搭建模型层前期准备测试环境搭建代码演示 二、ORM操作相关方法三、ORM常见的查询关键字四、ORM底层SQL语句五、双下划线查询数据查询&#xff08;双下划线&#xff09;双下划线小训练Django ORM __双下划线细解 六、ORM外键字段创建基础表…...

css 设置网页最小字体为12px

谷歌浏览器默认最小字体为12px&#xff0c;但保不准万一有一天谷歌取消这个默认设置&#xff0c;或者一些人在设置中改了最小字体&#xff0c;为了防止万一&#xff0c;故系统设置了最小字体&#xff0c;主要利用了min和var的特性 :root {--responsive-font-size-primary: max…...

Failed to restart networking.service: Unit networking.service not found.

虚拟机Vmware中的Ubuntu20.0没有网络,ifconfig命令没有IP 如果在VMware中运行的Ubuntu 20.04虚拟机没有网络,并且ifconfig命令没有显示IP地址,你可以采取以下几个步骤来诊断和解决问题: 确认虚拟机网络设置: 确保虚拟机的网络适配器是开启的,并且配置正确。确认是否选择…...

基于单片机设计的水平仪(STC589C52+MPU6050)

一、前言 【1】项目背景 水平仪是一种常见的测量工具&#xff0c;用于检测物体或设备的水平姿态。在许多应用中&#xff0c;如建筑、制造和航空等领域&#xff0c;保持设备的水平姿态是非常重要的。为了实现实时的水平检测和显示&#xff0c;基于单片机设计的水平仪是一个常见…...

射频与微波综合测试仪-4958手持式微波综合测试仪

4958 微波综合测试仪 频率范围&#xff1a;1MHz&#xff5e;20GHz 4958手持式微波综合测试仪测量频率范围可达1MHz~20GHz&#xff0c;集电缆和天线驻波比测试、不连续点故障定位测试、插入损耗和增益测试、频谱分析、功率测量等多种功能于一体&#xff0c;携带方便&…...

Redis内存淘汰机制

Redis内存淘汰机制 引言 Redis 启动会加载一个配置&#xff1a; maxmemory <byte> //内存上限 默认值为 0 (window版的限制为100M)&#xff0c;表示默认设置Redis内存上限。但是真实开发还是需要提前评估key的体量&#xff0c;提前设置好内容上限。 此时思考一个问题…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

【java面试】微服务篇

【java面试】微服务篇 一、总体框架二、Springcloud&#xff08;一&#xff09;Springcloud五大组件&#xff08;二&#xff09;服务注册和发现1、Eureka2、Nacos &#xff08;三&#xff09;负载均衡1、Ribbon负载均衡流程2、Ribbon负载均衡策略3、自定义负载均衡策略4、总结 …...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件&#xff0c;主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理&#xff1a; 一、超载保护装置&#xff08;核心安全装置&#xff09; 1. 起重量限制器 功能&#xff1a;实时监测起升载荷&a…...

表单设计器拖拽对象时添加属性

背景&#xff1a;因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...