1499. 满足不等式的最大值

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

请你找出 y i + y j + ∣ x i − x j ∣ y_i + y_j + |x_i - x_j| yi​+yj​+∣xi​−xj​∣ 的 最大值,其中 ∣ x i − x j ∣ < = k |xi - xj| <= k ∣xi−xj∣<=k 且 1 < = i < j < = p o i n t s . l e n g t h 1 <= i < j <= points.length 1<=i<j<=points.length。

题目测试数据保证至少存在一对能够满足 ∣ x i − x j ∣ < = k |x_i - x_j| <= k ∣xi​−xj​∣<=k的点。


捕捉题干信息我们发现:

以①为条件可对②进行化简:

由此我们使用pair<T1, T2>(当pair为堆元素时,默认使用first元素为基准进行排序) 分别存放:

  • T1 = y i − x i y_i-x_i yi​−xi​

  • T2 = x j − x i x_j - x_i xj​−xi​

正如我们所说,pair作为元素时以第一个元素为基准默认进行大根堆排序(降序)

因此我们每次进行 ∣ x i − x j ∣ ≤ k |x_i - x_j| \leq k ∣xi​−xj​∣≤k (k值)的合理性判断+ y i + y j + ∣ x i − x j ∣ y_i + y_j + |x_i - x_j| yi​+yj​+∣xi​−xj​∣最大值动态更新即可


代码如下:

class Solution {public:int findMaxValueOfEquation(vector<vector<int>>& points, int k) {priority_queue<pair<int, int>> q;q.push({points[0][1]-points[0][0], points[0][0]});// 首先先将第一个数传入,防止队列为空int ans = INT_MIN;   // 把答案假定为 整型最小值 方便后期比较for(int i = 1; i < points.size(); ++i) {while(!q.empty()&&points[i][0]-q.top().second > k) {  // 如果队列不为空 且合理性不通过,弹出当前与之比较的数据即可,直到合理为止q.pop();}if(!q.empty()) {  // 如果不为空动态更新答案即可ans = max(ans, q.top().first + points[i][0]+points[i][1]);}q.push({points[i][1]-points[i][0], points[i][0]});}        return ans;}
};

1499. 满足不等式的最大值 详解相关推荐

  1. EM算法(Expectation Maximization Algorithm)详解

    EM算法(Expectation Maximization Algorithm)详解 主要内容 EM算法简介 预备知识  极大似然估计 Jensen不等式 EM算法详解  问题描述 EM算法推导 EM ...

  2. 1.16.Flink Window和Time详解、TimeWindow的应用、Window聚合分类之全量聚合、全量聚合状态变化过程-求最大值、Time介绍、EventTime和Watermarks等

    1.16.Flink Window和Time详解 1.16.1.Window(窗口) 1.16.2.Window的类型 1.16.3.Window类型汇总 1.16.4.TimeWindow的应用 1 ...

  3. 定义域可以写成不等式吗_高一数学第一次月考考点之抽象函数定义域详解

    高一数学第一次月考考点之抽象函数定义域详解 Hello,这里是摆渡学涯. 十一假期刚刚开始,你不能松懈哦!早点把考点复习完,早点可以开始自己的玩耍生活哦. 这次课程咱们来为大家讲一下抽象函数定义域的求 ...

  4. SVM分类器原理详解

    SVM分类器原理详解 标签: svm文本分类java 2015-08-21 11:51 2399人阅读 评论(0) 收藏 举报  分类: 数据挖掘 文本处理(16)  机器学习 分类算法(10)  目 ...

  5. 【GAN优化】详解SNGAN(频谱归一化GAN)

    今天将和大家一起学习具有很高知名度的SNGAN.之前提出的WGAN虽然性能优越,但是留下一个难以解决的1-Lipschitz问题,SNGAN便是解决该问题的一个优秀方案.我们将先花大量精力介绍矩阵的最 ...

  6. 窗口发送消息参数详解

    窗口发送消息参数详解 //    窗口.发送消息    函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果 中文函数原型: 发送消息(hwnd,msg ...

  7. matlab中k-means算法_机器学习 | KMeans聚类分析详解

    大量数据中具有"相似"特征的数据点或样本划分为一个类别.聚类分析提供了样本集在非监督模式下的类别划分.聚类的基本思想是"物以类聚.人以群分",将大量数据集中相似 ...

  8. Windows 窗口发送消息参数详解

    窗口发送消息参数详解 // 窗口.发送消息 函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果中文函数原型: 发送消息(hwnd,msg,wparam ...

  9. 机器学习算法(二十五):KD树详解及KD树最近邻算法

    目录 1 KD树 1.1 什么是KD树 1.2 KD树的构建 1.3 KD树的插入 1.4 KD树的删除 1.5 KD树的最近邻搜索算法 1.5.1 举例:查询点(2.1,3.1) 1.5.2 举例: ...

最新文章

  1. jQuery源码分析系列:属性操作
  2. SQL Server开发人员应聘常见问题妙解
  3. java设计模式之简单工厂模式
  4. 创建存储过程时出现的This function has none of DETERMINISTIC, NO SQL解决办法
  5. Python精确指南——第四章-部署和技巧
  6. centos7 卸载软件
  7. 解决文件上传_使用FastDfs上传头像上传不成功的问题---SpringCloud Alibaba_若依微服务框架改造---工作笔记002
  8. TFT LCD显示原理详解
  9. Helm 3 完整教程(三):chart 的文件结构和字段详解
  10. 任务调度、磁盘、进程管理、PRM和YUM
  11. 考研复习(8)-图的基本操作
  12. 循环语句—C#基础回顾
  13. visio业务流程图教学_Visio流程图入门
  14. Java开发框架!高级java工程师简历模板
  15. k3c最新官改非常稳定了_2020国庆过后玉米价格最新行情走势
  16. 【自动升级后的错误】如何停止腾讯会议自动升级
  17. sql中的函数取余数
  18. android 在线获取音乐歌词lrc文件
  19. Numpy切片与索引
  20. 现阶段中国人工智能生态的优缺点分析

热门文章

  1. 如何将2000kbps的mp4视频转换成30000kbps的视频?视频比特率如何修改?
  2. ps安装报错需要重启计算机,对在电脑上安装软件(以ps为例)出现报错问题补充理解记录...
  3. 写在2017年的前一个小时内
  4. 传智健康—第1章 项目概述和环境搭建
  5. Process finished with exit code 143
  6. Centos7安装mysql5.6的步骤
  7. matlab开关参数测,SiC功率MOSFET参数测量及开关暂态过程建模
  8. 树莓派 python 入门_树莓派新手入门教程
  9. ELK kibana查询与画图
  10. flashlight问题调试