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

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

  • 双端单调队列

    • 将原式变形为 x~j~ + y~j~ + y~i~ - x~i~
    • 枚举j ,问题变为求i<j的y~i~ - x~i~的最大值
    • 有限制条件x~i~ ≥ x~j~−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;
      }
  };
相关推荐
是糖不是唐7 分钟前
代码随想录算法训练营第五十四天|Day54 图论
c语言·数据结构·算法·图论
Shiroha Wang20 分钟前
【数据结构OJ】【图论】货币套汇(图路径)
数据结构·c++·经验分享·笔记·算法·图论
我怎么又饿了呀34 分钟前
DataWhale—PumpkinBook(TASK05决策树)
算法·决策树·机器学习
DW_DROME37 分钟前
02向量与矩阵方程
线性代数·算法·矩阵
Sunyanhui137 分钟前
力扣 最大数组和-53
数据结构·算法·leetcode
kcwqxx39 分钟前
day25|leetCode 491.递增子序列,46.全排列 ,47.全排列 II
c++·算法·leetcode·哈希算法
幻风_huanfeng43 分钟前
PCA算法所体现的核心数学思维
人工智能·算法·机器学习
硝酯蒽唑Ti镓1 小时前
实验六 用MATLAB设计IIR数字滤波器
算法·matlab·信号处理
霖霖7141 小时前
MPU6050
stm32·单片机·算法
星星岛屿1 小时前
常见排序算法
算法