力扣每日一题 2024/3/21 频率跟踪器
题目描述

用例说明

思路讲解
看到统计数字频率或者出现次数很容易想到用哈希表,但是一个哈希表count将数字和数字出现次数映射起来似乎不太够,如果需要统计数字出现次数的频率的话还是需要进行一次遍历,时间复杂度为O(n),有没有常数级获取数字出现次数的频率呢,再定义一个哈希表times,用来建立数字出现次数和数字出现次数的频率的哈希表。
在添加元素操作中,首先需要将数字和数字出现次数存储到count中,然后更新time哈希表,该数字的出现次数对应的频率加一,该数字添加之前的出现次数对应的频率减一。
删除元素同理,首先找到该数字对应的出现次数,进行减一,然后更新times哈希表,该数字对应出现次数的频率减一,该数字删除后对应的出现次数的频率加一。
代码
class FrequencyTracker {Map<Integer,Integer> count=new HashMap<>();Map<Integer,Integer> times=new HashMap<>();public FrequencyTracker() {}public void add(int number) {count.put(number,count.getOrDefault(number,0)+1);int counts=count.get(number);times.put(counts,times.getOrDefault(counts,0)+1);times.put(counts-1,times.getOrDefault(counts-1,0)-1);}public void deleteOne(int number) {if(count.getOrDefault(number,0)==0) return;count.put(number,count.getOrDefault(number,0)-1);int counts=count.get(number);times.put(counts,times.getOrDefault(counts,0)+1);times.put(counts+1,times.getOrDefault(counts+1,0)-1);}public boolean hasFrequency(int frequency) {return times.getOrDefault(frequency,0)>0;}
}/*** Your FrequencyTracker object will be instantiated and called as such:* FrequencyTracker obj = new FrequencyTracker();* obj.add(number);* obj.deleteOne(number);* boolean param_3 = obj.hasFrequency(frequency);*/
复杂度
时间复杂度O(q) q为查询次数,其余操作均为O(1)时间内访问
空间复杂度O(m) m为值域范围
相关文章:
力扣每日一题 2024/3/21 频率跟踪器
题目描述 用例说明 思路讲解 看到统计数字频率或者出现次数很容易想到用哈希表,但是一个哈希表count将数字和数字出现次数映射起来似乎不太够,如果需要统计数字出现次数的频率的话还是需要进行一次遍历,时间复杂度为O(n),有没有常…...
基于SpringBoot 实现指标监控及日志管理
添加Actuator功能 Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用,比如健康检查、内存使用情况统计、线程使用情况统计等。我们在SpringBoot项目中添加Actuator功能,即可使用Actuator监控 项目,用法如下: 在被监…...
Linux之看门狗
1、什么是看门狗? 在Linux系统中,看门狗机制主要包括硬件看门狗、软件看门狗和看门狗守护进程三个部分。硬件看门狗是一个独立的计时器设备,用于监视系统的运行状态。如果系统长时间没有发送喂狗信号,硬件看门狗将执行预设的动作…...
第十九章 TypeScript 装饰器Decorator
Decorator 装饰器是一项实验性特性,在未来的版本中可能会发生改变 它们不仅增加了代码的可读性,清晰地表达了意图,而且提供一种方便的手段,增加或修改类的功能 若要启用实验性的装饰器特性,你必须在命令行或tsconfig…...
第十四章 TypeScript tsconfig.json配置文件
生成tsconfig.json 文件 这个文件是通过tsc --init命令生成的 配置详解 "compilerOptions": {"incremental": true, // TS编译器在第一次编译之后会生成一个存储编译信息的文件,第二次编译会在第一次的基础上进行增量编译,可以提…...
科技助力高质量发展:新质生产力的崛起与企业数字化转型
引言 随着科技的飞速发展,我们正逐渐步入数字化智能时代,这个时代不仅为企业带来了无限的机遇,也让其面对前所未有的挑战。在这个快速变革的时代,企业必须不断调整自己的经营策略,适应数字化转型的浪潮,以…...
Redis - 缓存访问 缓存穿透 缓存击穿 缓存雪崩
一、缓存访问 1、客户端发送请求 2、服务首先会请求 redis,查看请求的内容是否存在 3、redis 将请求结果返回给服务,如果返回的结果有数据则直接返回给客户端;如果没有数据则会继续往下执行 4、服务从数据库中查询请求的数据 5、数据库将…...
SAP Business Application Studio(BAS)中开发Fiori App的基础知识
1. SAP Fiori Tools SAP Fiori Tools是一套用于支持SAP Fiori应用开发的工具,包括应用模板、可视化编辑器、代码生成、应用预览和集成测试工具等。这些工具可以帮助开发者更快速、更简单地创建和维护SAP Fiori应用。SAP Fiori Tools 可与SAP的开发环境(…...
DashScope - 阿里模型服务灵积
文章目录 关于 DashScope快速上手代码调用http 请求示例Python 调用 关于 DashScope 官方主页:https://dashscope.aliyun.comPYPI : https://pypi.org/project/dashscope/支持模型:https://dashscope.console.aliyun.com/model DashScope灵积模型服务建…...
个人信息-求职[web前端]
我有近近10年开发及6年的管理经验Web前端,所负责的技术团队经历了 Web 前端几代技术变革,参与了几乎,在性能优化、开发效率、所有前端相关项目工程化架构选型上都有丰厚的产出。在上家致力于数据安全前端的相关工作,专注于Vue.js技术栈来推进…...
Apache DolphinScheduler 社区开启讲师招募,赶快加入吧!
随着Apache DolphinScheduler在全球范围内的快速发展,我们的用户群体和社区活动也在不断扩大。 为了进一步丰富我们的社区内容,分享更多有价值的知识和经验,我们诚挚地邀请您加入我们,成为Apache DolphinScheduler社区的分享嘉宾。…...
【HTML面试题】src和href的区别
一、请求资源不同 src 在请求资源时,会把这个资源下载下来href 建立链接通道,也就是引用元素和当前文档建立链接 二、作用结果不同 src 会替换当前元素href 只是引用资源和当前元素建立链接,所以不会替换当前内容。 三、浏览器解析方式不…...
电脑文件msvcp100.dll丢失原因,如何快速修复msvcp100.dll
电脑文件msvcp100.dll丢失原因,最近有朋友在问这个,显然会问这个的人,一般都是遇到了msvcp100.dll丢失的问题了,今天我们就来详细的给大家说说msvcp100.dll这个文件吧,我们只有了解了msvcp100.dll这个文件,…...
安装OneNote for Win10 | Win10/Win11
前言 PC端的OneNote分为2个版本,分别是Microsoft Store版本和Office版本,Microsoft Store版本即为OneNote for Win10,此版的OneNote有最近笔记功能,但检索功能不如Office版本,个人认为2个版本各有优劣。 但OneNote f…...
力扣242. 有效的字母异位词
思路:字母相互抵消的思路,本题字符串中只包含小写字母26位,那就新建record数组int[26],下标0-25,代表小写字母a-z, 需要通过 某字符减a 来达到这一目的; class Solution {public boolean isAnagram(String…...
windows server 下的mysql 8.0.28修改数据库目录
1. 查看当前数据库存储位置 show global variables like %datadir%; 默认是:C:\ProgramData\MySQL\MySQL Server 8.0\Data 2. 修改 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini配置文件。如下: datadirD:/ProgramData/MySQL/MySQL Server 8.0/Dat…...
【Excel自动化办公】使用openpyxl对Excel进行读写操作
目录 一、环境安装 1.1 创建python项目 1.2 安装openpyxl依赖 二、Excel数据读取操作 三、Excel数据写入操作 3.1 创建空白工作簿 3.2 写数据 四、设置单元格样式 4.1 字体样式 4.2 设置单元格背景填充色 4.3 设置单元格边框样式 4.4 单元格对齐方式 4.5 数据筛选…...
大龄女程序员脱单指南:如何科学评估你的Mr. Right?(含C语言代码示例)
大龄女程序员脱单指南:如何科学评估你的Mr. Right? 在这个快节奏、高压力的时代,女程序员们时常在代码的世界里游走,却可能在现实的情感世界里感到迷茫。尤其是对于那些步入“大龄”行列的女程序员来说,脱单似乎成了一…...
深入剖析Java并发库(JUC)之StampedLock的应用与原理
码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在现代多核处理器架构下,并发编程成为提升程序性能的关键手段。Java作为一门广泛使用的编程语言,提供了丰…...
【PMP】每日一练2
项目生命周期与开发生命周期 项目生命周期开发生命周期 项目生命周期 项目生命周期:描述项目从开始到结束所经历的一系列阶段。 项目生命周期类型: 预测型:也称瀑布型生命周期。在生命周期的早期阶段就确定了项目的范围、时间、成本。客户需…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
热烈祝贺埃文科技正式加入可信数据空间发展联盟
2025年4月29日,在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上,可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞,强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...
