Leetcode-2080区间内查询数字的频率

最近没有更新不是没做,单纯是有些懒,不知道说点啥了

链接如下,2080. 区间内查询数字的频率

感觉我的做法有些暴力,用一个hashmap存的字符串对应的值,发现完全没用到二分查找的思想,能过也是奇迹了。

C++代码如下

cpp 复制代码
class RangeFreqQuery {
public:
    vector<int> R_arr;
    unordered_map<string,int> hmap;
    RangeFreqQuery(vector<int>& arr) {
        R_arr = arr;
    }
    int query(int left, int right, int value) {
        int cnt = 0;
        if(hmap.find(to_string(left)+'.'+to_string(right)+'.'+to_string(value))!= hmap.end()){
            cnt = hmap[to_string(left)+'.'+to_string(right)+'.'+to_string(value)] ;
            return cnt;
        }
        for(int i = left;i<=right;i++){
            if(R_arr[i] == value)
                cnt++;
        }
        hmap[to_string(left)+'.'+to_string(right)+'.'+to_string(value)] = cnt;
        return cnt;
    }
};

/**
 * Your RangeFreqQuery object will be instantiated and called as such:
 * RangeFreqQuery* obj = new RangeFreqQuery(arr);
 * int param_1 = obj->query(left,right,value);
 */