每日一题 Leetcode-1499满足不等式的最大值

1499. 满足不等式的最大值

给你一个数组 points 和一个整数 k 。数组中每个元素都表示二维平面上的点的坐标,并按照横坐标 x 的值从小到大排序。也就是说 points[i] = [xi, yi] ,并且在 1 <= i < j <= points.length 的前提下, xi < xj 总成立。

请你找出 yi + yj + |xi - xj| 的 最大值,其中 |xi - xj| <= k 且 1 <= i < j <= points.length

题目测试数据保证至少存在一对能够满足 |xi - xj| <= k 的点。

示例 1:

输入:points = [[1,3],[2,0],[5,10],[6,-10]], k = 1
输出:4
解释:前两个点满足 |xi - xj| <= 1 ,代入方程计算,则得到值 3 + 0 + |1 - 2| = 4 。第三个和第四个点也满足条件,得到值 10 + -10 + |5 - 6| = 1 。
没有其他满足条件的点,所以返回 4 和 1 中最大的那个。

示例 2:

输入:points = [[0,0],[3,0],[9,2]], k = 3
输出:3
解释:只有前两个点满足 |xi - xj| <= 3 ,代入方程后得到值 0 + 0 + |0 - 3| = 3 。

提示:

  • 2 <= points.length <= 10^5
  • points[i].length == 2
  • -10^8 <= points[i][0], points[i][1] <= 10^8
  • 0 <= k <= 2 * 10^8
  • 对于所有的1 <= i < j <= points.length ,points[i][0] < points[j][0] 都成立。也就是说,xi 是严格递增的。

解题思路 使用优先队列作为一个滑动窗口 持续更新求解目标的最大值,在一个长度位k的窗口中找到满足 yi+yj+|xi-xj|  就是变换形式的xj-xi+yi+yj 形式

官方如下

class Solution {
public:using pii=pair<int ,int >;  //定义一个别名 pii存储两个有序的值,像坐标(x,y)int findMaxValueOfEquation(vector<vector<int>>& points, int k) {int res=INT_MIN;        //初始化一个最小值priority_queue<pii,vector<pii>,greater<pii>> heap;  //创建一个优先队列  这是最小堆 其中pair为排序的关键 本体的第一项是有序的for(auto& point: points)        //进行遍历poines中的元素{int x=point[0],y=point[1];      //进行判断如果当前元素与栈顶第一项的差值大于k时就将栈顶元素推出 ,// 然后在进行判断 直到当前值与前一个元素差值小于k那么就满足条件while(!heap.empty()&&x-heap.top().second>k)heap.pop();//更新最大值if(!heap.empty()){res=max(res,x+y-heap.top().first);}//将当前元素入栈heap.emplace(make_pair(x-y,x));}return res;}
};

在加一个解法采用算双端队列来存储点的索引

class Solution {
public:int findMaxValueOfEquation(vector<vector<int>>& points, int k) {deque<int> dq;  // 创建双端队列dq来存储点的索引int result = INT_MIN;  // 记录最大值for(int i = 0; i < points.size(); i++){  // 遍历数组pointswhile(!dq.empty() && points[dq.front()][0] + k < points[i][0])dq.pop_front();  // 如果当前点的横坐标与队首点的横坐标差超过k,则移除队首点if(!dq.empty()){int xj = points[i][0];  // 获取当前点的横坐标int yi = points[i][1];  // 获取当前点的纵坐标int xi = points[dq.front()][0];  // 获取队首点的横坐标int yj = points[dq.front()][1];  // 获取队首点的纵坐标result = max(result, yi + yj + xj - xi);  // 更新最大值}while(!dq.empty() && points[i][1] - points[i][0] >= points[dq.back()][1] - points[dq.back()][0])dq.pop_back();  // 移除双端队列尾部所有纵坐标较小的点dq.push_back(i);  // 将当前点的索引插入双端队列尾部}return result;  // 返回最大值作为结果}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/5569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA如何打包springboot成jar包,并运行、停止、重启,本地依赖不能打包怎么办

1、将springboot项目打包成jar 第一步 这里要注意依赖的包的导入&#xff0c;有pom.xml中网络依赖导入&#xff0c;有的包是本地依赖导入&#xff0c;本地依赖的包只需在pom.xml加入一下代码即可&#xff01; <dependency><groupId>jacob</groupId>//名称…

eclipse中经常遇到的maven相关的问题

maven工程依赖的jar包无法部署到tomcat中 右键maven工程&#xff0c;选择“属性” 将工程在tomcat重新发布即可。 2、Update Project or use Quick Fix maven工程总是提示更新&#xff0c;一更新java版本又回到1.5 在pom.xml添加如下&#xff1a; <build><finalN…

rabbitmq是什么?rabbitmq安装、原理、部署

rabbitmq是什么&#xff1f; MQ的全称是Messagee Queue&#xff0c;因为消息的队列是队列&#xff0c;所以遵循FIFO 先进先出的原则是上下游传递信息的跨过程通信机制。 RabbitMQ是一套开源&#xff08;MPL&#xff09;新闻队列服务软件由 LShift 提供的一个 Advanced Messag…

量子计算机操作系统介绍

下载&#xff1a;https://m.originqc.com.cn/zh 为量子计算编程而生的一站式学习与开发平台&#xff0c;提供量子编程开发环境&#xff0c;支持量子计算资源随时调用&#xff0c;支持量子应用打开即用。 产品特点 无需安装配置 PilotOS客户端集成量子编程开发环境所需的Pyt…

神经网络小记-过拟合与欠拟合

过拟合 过拟合&#xff08;Overfitting&#xff09;是机器学习和深度学习中常见的问题&#xff0c;指模型在训练数据上表现得非常好&#xff0c;但在新数据上表现较差&#xff0c;即模型过度拟合了训练数据的特征&#xff0c;导致泛化能力不足。 解决过拟合的方式包括以下几种…

Jira、Confluence数据迁移

Jira、Confluence的数据迁移 jira简单来说就是缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理的系统&#xff01;&#xff01;&#xff01;confluence用来共享信息、文档协作、集体讨论&#xff0c;信息推送&#xff01;&#xff01;&#xff01;这段…

前端对后端路径的下载//流文件下载

1.前端对后端路径的下载 2.流文件下载

【git基本使用】

初识git 一、git安装 1.1 Linux-centos 如果你的的平台是centos&#xff0c;安装git相当简单&#xff0c;以我的centos7.6为例&#xff1a; ⾸先&#xff0c;你可以试着输⼊Git&#xff0c;看看系统有没有安装Git&#xff1a; git-bash: git: command not found 出现像上⾯…

MYSQL练习一答案

练习1答案 构建数据库 数据库 数据表 answer开头表为对应题号答案形成的数据表 表结构 表数据 答案&#xff1a; 1、查询商品库存等于50的所有商品&#xff0c;显示商品编号&#xff0c;商 品名称&#xff0c;商品售价&#xff0c;商品库存。 SQL语句 select good_no,good…

【树上操作】定长裁剪 CF1833 G

Problem - G - Codeforces 题意&#xff1a; 给定一棵n个节点的树&#xff0c;请你减掉一些边&#xff0c;使得剪掉后的每个树只有三个节点&#xff0c; 如果可以&#xff0c;第一行返回减掉边的数量&#xff0c;第二行返回减掉边的编号&#xff1b;如果无解&#xff0c;输出…

Redis的内存回收与内存淘汰策略

对于redis这样的内存型数据库而言&#xff0c;如何删除已过期的数据以及如何在内存满时回收内存是一项很重要的工作。 常见的redis内存回收的工作主要分为两个方面&#xff1a; 清理过期的key在内存不足时回收到足够的内存用以存储新的key 清理过期的key 我们很少在redis中…

Cesium态势标绘专题-普通点(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

[golang gin框架] 40.Gin商城项目-微服务实战之Captcha验证码微服务

本次内容需要 gin框架基础知识, golang微服务基础知识才能更好理解 一.Captcha验证码功能引入 在前面,讲解了微服务的架构等,这里,来讲解前面商城项目的 Captcha验证码 微服务 ,captcha验证码功能在前台,后端 都要用到 ,可以把它 抽离出来 ,做成微服务功能 编辑 这个验证码功能…

【vue3 自定义组件中使用v-model实现双向绑定】

文章目录 前言简单封装Input组件v-mode参数多个v-model绑定 前言 比如我们有自定义的Form组件、Input组件。 如果Form组件想拿到Input组件中input框输入的内容&#xff0c;我们可以让Form这个父组件给Input子组件传值props:value&#xff08;不能直接修改子组件的props&#…

《零基础入门学习Python》第063讲:论一只爬虫的自我修养11:Scrapy框架之初窥门径

上一节课我们好不容易装好了 Scrapy&#xff0c;今天我们就来学习如何用好它&#xff0c;有些同学可能会有些疑惑&#xff0c;既然我们懂得了Python编写爬虫的技巧&#xff0c;那要这个所谓的爬虫框架又有什么用呢&#xff1f;其实啊&#xff0c;你懂得Python写爬虫的代码&…

【Spring MVC】小文件上传的多种方法

文章目录 方法参数单文件上传1. MultipartFile 的 transferTo(File dest)2. MultipartFile 的 transferTo(Path dest)3. MultipartFile Files.write(Path path, byte[] bytes, OpenOption... options)4. MultipartFile Files.copy(InputStream in, Path target, CopyOption..…

20 QTreeWidget控件

代码&#xff1a; //treeWidget树控件//1&#xff1a;设置头部标签 QStringList()匿名对象创建ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");//2&#xff1a;设置itemQTreeWidgetItem * liItem new QTreeWidg…

Kubernetes(K8s)从入门到精通系列之二:入门案例启动MySQL服务和Tomcat应用

Kubernetes K8s 从入门到精通系列之二:入门案例启动MySQL服务和Tomcat应用 一、实际应用案例二、部署K8s集群三、创建Mysql的Deployment,启动MySQL服务四、创建MySQL的Service五、创建tomcat的Deployment,启动Tomcat应用六、通过浏览器访问网页一、实际应用案例 运行在Tomca…

MySQL IF()函数:在查询中灵活应用条件逻辑

前言&#xff1a; 在数据库查询中&#xff0c;我们经常需要根据条件逻辑来选择返回不同的结果。MySQL提供了强大的IF()函数&#xff0c;使得在查询语句中应用条件逻辑变得非常简单和灵活。本篇文章将深入探讨MySQL的IF()函数&#xff0c;并展示如何在查询中利用它来进行条件判断…

Linux 系统中异常与中断

文章目录 异常与中断的关系中断的处理流程异常向量表Linux 系统对中断的处理ARM 处理器程序运行的过程程序被中断时&#xff0c;怎么保存现场Linux 系统对中断处理的演进Linux 对中断的扩展&#xff1a;硬件中断、软件中断硬件中断软件中断 中断处理原则&#xff1a;耗时中断的…