力扣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);
      }
  };
相关推荐
凸头2 分钟前
以AtomicInteger为例的Atomic 类的底层CAS细节理解
java·jvm·算法
前端小刘哥1 小时前
赋能在线教育与企业培训:视频直播点播平台EasyDSS视频点播的核心技术与应用实践
算法
吗~喽1 小时前
【LeetCode】四数之和
算法·leetcode·职场和发展
Net_Walke1 小时前
【散列函数】哈希函数简介
算法·哈希算法
卿言卿语2 小时前
CC1-二叉树的最小深度
java·数据结构·算法·leetcode·职场和发展
码流之上2 小时前
【一看就会一写就废 指间算法】执行操作后的最大 MEX —— 同余、哈希表
算法·面试
仰泳的熊猫2 小时前
LeetCode:889. 根据前序和后序遍历构造二叉树
数据结构·c++·算法
2025年一定要上岸2 小时前
【日常学习】10-15 学习re
学习·算法·正则表达式
aramae2 小时前
数据结构与算法(递归)
开发语言·经验分享·笔记·算法
小欣加油2 小时前
leetcode 329 矩阵中的最长递增路径
c++·算法·leetcode·矩阵·深度优先·剪枝