自学内容网 自学内容网

力扣LCR184.设计自助结算系统

力扣LCR184.设计自助结算系统

  • 一个队列存所有value

    • 一个数组模拟单调队列存区间最大值
  •   const int N = 100010;
      int a[N];
      class Checkout {
          queue<int> q;
          int hh=0,tt=-1;
      public:
          Checkout() {
      
          }
          
          int get_max() {
              if(hh > tt) return -1;
              return a[hh];
          }
          
          void add(int value) {
              while(hh <= tt && a[tt] <= value) tt --;
              a[++tt] = value;
              q.push(value);
          }
          
          int remove() {
              if(q.empty())
                  return -1;
              int ans = q.front();
              if(ans == a[hh])
                  hh++;
              q.pop();
              return ans;
          }
      };
    

原文地址:https://blog.csdn.net/Pisasama/article/details/140519950

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!