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

embedded/2025/2/2 16:34:32/

题目如下
在这里插入图片描述
数据范围
在这里插入图片描述
示例
在这里插入图片描述

这题十分有意思一开始我想对每个子数组排序二分结果超时了。
转换思路:我们可以提前把每个数字出现的位置先记录下来形成集合,
然后拿着left和right利用二分查找看看left和right是不是在集合里然后做一个相减就出答案了。

通过代码

class RangeFreqQuery {
public:unordered_map<int,vector<int>> map;//unordered_map<string,int> mapc;RangeFreqQuery(vector<int>& arr) {int n = arr.size();for(int i = 0;i < n;i++){if(map.count(arr[i]) == 1)map[arr[i]].emplace_back(i);else{map[arr[i]] = vector<int>{i};}}}int findlow(vector<int>& nums,int target) {int n = nums.size();int l = 0, r = n - 1;int mid;while (l < r) {mid = (l + r) / 2;if (nums[mid] >= target) {r = mid;} else{l = mid + 1;}}if(nums[l] < target)return -1;return l;}int findhigh(vector<int>& nums,int target) {int n = nums.size();int l = 0, r = n - 1;int mid;while (l < r) {mid = (l + r + 1) / 2;if (nums[mid] > target) {r = mid - 1;} else{l = mid;}}if(nums[l] > target)return -1;return l;}int query(int left, int right, int value) {//  string a = to_string(left) + "+" + to_string(right) + "+" + to_string(value);//  if(mapc.count(a) == 1)return mapc[a];if(map.count(value) == 0)return 0;vector<int>& v = map[value];int l = findlow(v,left);int r = findhigh(v,right);if(l != -1 && r != -1){//      mapc[a] = r - l + 1;return r - l + 1;}return 0;}
};/*** Your RangeFreqQuery object will be instantiated and called as such:* RangeFreqQuery* obj = new RangeFreqQuery(arr);* int param_1 = obj->query(left,right,value);*/

在这里插入图片描述


http://www.ppmy.cn/embedded/158946.html

相关文章

神经网络的数据流动过程(张量的转换和输出)

文章目录 1、文本从输入到输出&#xff0c;经历了什么&#xff1f;2、数据流动过程是张量&#xff0c;如何知道张量表达的文本内容&#xff1f;3、词转为张量、张量转为词是唯一的吗&#xff1f;为什么&#xff1f;4、如何保证词张量的质量和合理性5、总结 &#x1f343;作者介…

系统架构设计师教材:信息系统及信息安全

信息系统 信息系统的5个基本功能&#xff1a;输入、存储、处理、输出和控制。信息系统的生命周期分为4个阶段&#xff0c;即产生阶段、开发阶段、运行阶段和消亡阶段。 信息系统建设原则 1. 高层管理人员介入原则&#xff1a;只有高层管理人员才能知道企业究竟需要什么样的信…

【Unity3D】实现横版2D游戏——单向平台(简易版)

目录 问题 项目Demo直接使用免费资源&#xff1a;Hero Knight - Pixel Art &#xff08;Asset Store搜索&#xff09; 打开Demo场景&#xff0c;进行如下修改&#xff0c;注意Tag是自定义标签SingleDirCollider using System.Collections; using System.Collections.Generic;…

【网站建设:HTTPS - 如何生成免费SSL证书,并自动更新】

某阿X云服务平台的证书托管服务中&#xff0c;有关于HTTPS证书获取&#xff0c;生成和自动更新的功能。但其作为一项增值服务&#xff0c;每月就要几百元 。但是这个我们可以自己写几行代码来实现&#xff0c; 证书生成更新到Nginx自动更新 假设我们有个域名wu123.cn要为域名…

【零拷贝】

目录 一&#xff1a;了解IO基础概念 二&#xff1a;数据流动的层次结构 三&#xff1a;零拷贝 1.传统IO文件读写 2.mmap 零拷贝技术 3.sendFile 零拷贝技术 一&#xff1a;了解IO基础概念 理解CPU拷贝和DMA拷贝 ​ 我们知道&#xff0c;操作系统对于内存空间&…

初阶mysql修炼手册

0.MySQL 在 Centos 7环境安装 0.1 卸载不要的环境 ps ajx |grep mariadb # 先检查是否有 mariadb 存在 systemctl stop mariadb.service # 停⽌ mariadb 服务 ps ajx |grep mariadb # 再 检查是否有 mariadb 存在 0.2 删除多余的安装包 rpm -qa | grep mysql #查看默认安…

HTML-新浪新闻-实现标题-样式1

用css进行样式控制 css引入方式&#xff1a; --行内样式&#xff1a;写在标签的style属性中&#xff08;不推荐&#xff09; --内嵌样式&#xff1a;写在style标签中&#xff08;可以写在页面任何位置&#xff0c;但通常约定写在head标签中&#xff09; --外联样式&#xf…

数据结构:优先级队列—堆

一、优先级队列 1、优先级队列概念 优先级队列&#xff0c;听名字我们就知道他是一种队列&#xff0c;队列在前面我们已经学习过了&#xff0c;它是一种先进先出的数据结构&#xff0c;但是在特殊的情况下&#xff0c;我们我们队列中元素是带有一定优先级的&#xff0c;它需要…