力扣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;
      }
  };
相关推荐
逝去的秋风几秒前
【代码随想录训练营第42期 Day61打卡 - 图论Part11 - Floyd 算法与A * 算法
算法·图论·floyd 算法·a -star算法
zero_one_Machel10 分钟前
leetcode73矩阵置零
算法·leetcode·矩阵
青椒大仙KI1141 分钟前
24/9/19 算法笔记 kaggle BankChurn数据分类
笔记·算法·分类
^^为欢几何^^1 小时前
lodash中_.difference如何过滤数组
javascript·数据结构·算法
豆浩宇1 小时前
Halcon OCR检测 免训练版
c++·人工智能·opencv·算法·计算机视觉·ocr
浅念同学1 小时前
算法.图论-并查集上
java·算法·图论
何不遗憾呢1 小时前
每日刷题(算法)
算法
立志成为coding大牛的菜鸟.1 小时前
力扣1143-最长公共子序列(Java详细题解)
java·算法·leetcode
鱼跃鹰飞1 小时前
Leetcode面试经典150题-130.被围绕的区域
java·算法·leetcode·面试·职场和发展·深度优先
liangbm31 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题