力扣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;
      }
  };
相关推荐
Q741_147几秒前
C++ 位运算 高频面试考点 力扣 面试题 17.19. 消失的两个数字 题解 每日一题
c++·算法·leetcode·面试·位运算
Jacob00003 分钟前
[Decision Tree] H(D) & IG & IGR
算法·面试
vadvascascass11 分钟前
平滑加权轮询负载均衡的底层逻辑
java·算法·负载均衡
CoovallyAIHub23 分钟前
Transformer作者开源进化计算新框架,样本效率暴增数十倍!
深度学习·算法·计算机视觉
晓宜1 小时前
Java25 新特性介绍
java·python·算法
LGL6030A1 小时前
数据结构学习(2)——多功能链表的实现(C语言)
数据结构·学习·链表
nsjqj1 小时前
数据结构:栈和队列
数据结构
琼羽1091 小时前
第十七周-通用量子门与Deutsch-Jozsa算法
算法·量子计算
旺小仔.1 小时前
位运算专题
算法
xwl12122 小时前
10.6 作业
数据结构·算法