力扣2080.区间内查询数字的频率

力扣2080.区间内查询数字的频率

  • 在下标上做二分

    • 把所有下标存入哈希表
    • 在left,right的范围内做二分求个数
cpp 复制代码
  class RangeFreqQuery {
      unordered_map<int, vector<int>> pos;
  public:
      RangeFreqQuery(vector<int>& arr) {
          for(int i=0;i<arr.size();i++)
          {
              pos[arr[i]].push_back(i);
          }
  
      }
      
      int query(int left, int right, int value) {
          auto it = pos.find(value);
          if(it == pos.end()) return 0;
          auto &a = it->second;
          return ranges::upper_bound(a,right) - ranges::lower_bound(a,left);
      }
  };
相关推荐
2301_8002561114 分钟前
地理空间数据库中的CPU 和 I/O 开销
数据库·算法·oracle
一个不知名程序员www1 小时前
算法学习入门---结构体和类(C++)
c++·算法
阿亮爱学代码2 小时前
Java 面试 (三)
面试·职场和发展
XFF不秃头3 小时前
力扣刷题笔记-旋转图像
c++·笔记·算法·leetcode
王老师青少年编程3 小时前
csp信奥赛C++标准模板库STL案例应用3
c++·算法·stl·csp·信奥赛·lower_bound·标准模版库
有为少年4 小时前
Welford 算法 | 优雅地计算海量数据的均值与方差
人工智能·深度学习·神经网络·学习·算法·机器学习·均值算法
Ven%4 小时前
从单轮问答到连贯对话:RAG多轮对话技术详解
人工智能·python·深度学习·神经网络·算法
山楂树の4 小时前
爬楼梯(动态规划)
算法·动态规划
谈笑也风生5 小时前
经典算法题型之复数乘法(二)
开发语言·python·算法