力扣1499.满足不等式的最大值

力扣1499.满足不等式的最大值

  • 双端单调队列

    • 将原式变形为 xj + yj + yi - xi
    • 枚举j ,问题变为求i<j的yi - xi的最大值
    • 有限制条件xi ≥ xj−k
    • 单调队列储存二元组(x,y-x)
cpp 复制代码
  class Solution {
  public:
      int findMaxValueOfEquation(vector<vector<int>>& points, int k) {
          int ans = INT_MIN;
          deque<pair<int,int>> q;
          for(auto &p:points)
          {
              int x = p[0],y = p[1];
              //如果队头元素的x不满足条件了
              while(!q.empty() && q.front().first < x - k)
                  q.pop_front();
              //如果还有满足条件的,取队头的最大值
              if(!q.empty())
                  ans = max(ans,x + y + q.front().second);
              //如果队尾元素比当前的小,之前弹掉
              while(!q.empty() && q.back().second <= y - x)
                  q.pop_back();
              q.emplace_back(x,y-x);
          }
          return ans;
      }
  };
相关推荐
bubiyoushang88821 分钟前
MATLAB实现雷达恒虚警检测
数据结构·算法·matlab
wu_asia25 分钟前
编程技巧:如何高效输出特定倍数数列
c语言·数据结构·算法
AlenTech33 分钟前
207. 课程表 - 力扣(LeetCode)
算法·leetcode·职场和发展
星火开发设计1 小时前
C++ queue 全面解析与实战指南
java·开发语言·数据结构·c++·学习·知识·队列
橘颂TA1 小时前
【剑斩OFFER】算法的暴力美学——力扣 394 题:字符串解码
数据结构·c++·结构与算法
练习时长一年1 小时前
LeetCode热题100(杨辉三角)
算法·leetcode·职场和发展
lzllzz232 小时前
bellman_ford算法
算法
栈与堆2 小时前
LeetCode 19 - 删除链表的倒数第N个节点
java·开发语言·数据结构·python·算法·leetcode·链表
sunfove2 小时前
麦克斯韦方程组 (Maxwell‘s Equations) 的完整推导
线性代数·算法·矩阵
Rui_Freely2 小时前
Vins-Fusion之 SFM准备篇(十二)
人工智能·算法·计算机视觉