当前位置: 首页 > news >正文

力扣每日一题 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 频率跟踪器

题目描述 用例说明 思路讲解 看到统计数字频率或者出现次数很容易想到用哈希表&#xff0c;但是一个哈希表count将数字和数字出现次数映射起来似乎不太够&#xff0c;如果需要统计数字出现次数的频率的话还是需要进行一次遍历&#xff0c;时间复杂度为O(n)&#xff0c;有没有常…...

基于SpringBoot 实现指标监控及日志管理

添加Actuator功能 Spring Boot Actuator可以帮助程序员监控和管理SpringBoot应用&#xff0c;比如健康检查、内存使用情况统计、线程使用情况统计等。我们在SpringBoot项目中添加Actuator功能&#xff0c;即可使用Actuator监控 项目&#xff0c;用法如下&#xff1a; 在被监…...

Linux之看门狗

1、什么是看门狗&#xff1f; 在Linux系统中&#xff0c;看门狗机制主要包括硬件看门狗、软件看门狗和看门狗守护进程三个部分。硬件看门狗是一个独立的计时器设备&#xff0c;用于监视系统的运行状态。如果系统长时间没有发送喂狗信号&#xff0c;硬件看门狗将执行预设的动作…...

第十九章 TypeScript 装饰器Decorator

Decorator 装饰器是一项实验性特性&#xff0c;在未来的版本中可能会发生改变 它们不仅增加了代码的可读性&#xff0c;清晰地表达了意图&#xff0c;而且提供一种方便的手段&#xff0c;增加或修改类的功能 若要启用实验性的装饰器特性&#xff0c;你必须在命令行或tsconfig…...

第十四章 TypeScript tsconfig.json配置文件

生成tsconfig.json 文件 这个文件是通过tsc --init命令生成的 配置详解 "compilerOptions": {"incremental": true, // TS编译器在第一次编译之后会生成一个存储编译信息的文件&#xff0c;第二次编译会在第一次的基础上进行增量编译&#xff0c;可以提…...

科技助力高质量发展:新质生产力的崛起与企业数字化转型

引言 随着科技的飞速发展&#xff0c;我们正逐渐步入数字化智能时代&#xff0c;这个时代不仅为企业带来了无限的机遇&#xff0c;也让其面对前所未有的挑战。在这个快速变革的时代&#xff0c;企业必须不断调整自己的经营策略&#xff0c;适应数字化转型的浪潮&#xff0c;以…...

Redis - 缓存访问 缓存穿透 缓存击穿 缓存雪崩

一、缓存访问 1、客户端发送请求 2、服务首先会请求 redis&#xff0c;查看请求的内容是否存在 3、redis 将请求结果返回给服务&#xff0c;如果返回的结果有数据则直接返回给客户端&#xff1b;如果没有数据则会继续往下执行 4、服务从数据库中查询请求的数据 5、数据库将…...

SAP Business Application Studio(BAS)中开发Fiori App的基础知识

1. SAP Fiori Tools SAP Fiori Tools是一套用于支持SAP Fiori应用开发的工具&#xff0c;包括应用模板、可视化编辑器、代码生成、应用预览和集成测试工具等。这些工具可以帮助开发者更快速、更简单地创建和维护SAP Fiori应用。SAP Fiori Tools 可与SAP的开发环境&#xff08;…...

DashScope - 阿里模型服务灵积

文章目录 关于 DashScope快速上手代码调用http 请求示例Python 调用 关于 DashScope 官方主页&#xff1a;https://dashscope.aliyun.comPYPI : https://pypi.org/project/dashscope/支持模型&#xff1a;https://dashscope.console.aliyun.com/model DashScope灵积模型服务建…...

个人信息-求职[web前端]

我有近近10年开发及6年的管理经验Web前端,所负责的技术团队经历了 Web 前端几代技术变革&#xff0c;参与了几乎&#xff0c;在性能优化、开发效率、所有前端相关项目工程化架构选型上都有丰厚的产出。在上家致力于数据安全前端的相关工作&#xff0c;专注于Vue.js技术栈来推进…...

Apache DolphinScheduler 社区开启讲师招募,赶快加入吧!

随着Apache DolphinScheduler在全球范围内的快速发展&#xff0c;我们的用户群体和社区活动也在不断扩大。 为了进一步丰富我们的社区内容&#xff0c;分享更多有价值的知识和经验&#xff0c;我们诚挚地邀请您加入我们&#xff0c;成为Apache DolphinScheduler社区的分享嘉宾。…...

【HTML面试题】src和href的区别

一、请求资源不同 src 在请求资源时&#xff0c;会把这个资源下载下来href 建立链接通道&#xff0c;也就是引用元素和当前文档建立链接 二、作用结果不同 src 会替换当前元素href 只是引用资源和当前元素建立链接&#xff0c;所以不会替换当前内容。 三、浏览器解析方式不…...

电脑文件msvcp100.dll丢失原因,如何快速修复msvcp100.dll

电脑文件msvcp100.dll丢失原因&#xff0c;最近有朋友在问这个&#xff0c;显然会问这个的人&#xff0c;一般都是遇到了msvcp100.dll丢失的问题了&#xff0c;今天我们就来详细的给大家说说msvcp100.dll这个文件吧&#xff0c;我们只有了解了msvcp100.dll这个文件&#xff0c;…...

安装OneNote for Win10 | Win10/Win11

前言 PC端的OneNote分为2个版本&#xff0c;分别是Microsoft Store版本和Office版本&#xff0c;Microsoft Store版本即为OneNote for Win10&#xff0c;此版的OneNote有最近笔记功能&#xff0c;但检索功能不如Office版本&#xff0c;个人认为2个版本各有优劣。 但OneNote f…...

力扣242. 有效的字母异位词

思路&#xff1a;字母相互抵消的思路&#xff0c;本题字符串中只包含小写字母26位&#xff0c;那就新建record数组int[26]&#xff0c;下标0-25&#xff0c;代表小写字母a-z, 需要通过 某字符减a 来达到这一目的&#xff1b; class Solution {public boolean isAnagram(String…...

windows server 下的mysql 8.0.28修改数据库目录

1. 查看当前数据库存储位置 show global variables like %datadir%; 默认是&#xff1a;C:\ProgramData\MySQL\MySQL Server 8.0\Data 2. 修改 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini配置文件。如下&#xff1a; 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语言代码示例)

大龄女程序员脱单指南&#xff1a;如何科学评估你的Mr. Right&#xff1f; 在这个快节奏、高压力的时代&#xff0c;女程序员们时常在代码的世界里游走&#xff0c;却可能在现实的情感世界里感到迷茫。尤其是对于那些步入“大龄”行列的女程序员来说&#xff0c;脱单似乎成了一…...

深入剖析Java并发库(JUC)之StampedLock的应用与原理

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 在现代多核处理器架构下&#xff0c;并发编程成为提升程序性能的关键手段。Java作为一门广泛使用的编程语言&#xff0c;提供了丰…...

【PMP】每日一练2

项目生命周期与开发生命周期 项目生命周期开发生命周期 项目生命周期 项目生命周期&#xff1a;描述项目从开始到结束所经历的一系列阶段。 项目生命周期类型&#xff1a; 预测型&#xff1a;也称瀑布型生命周期。在生命周期的早期阶段就确定了项目的范围、时间、成本。客户需…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3

一&#xff0c;概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本&#xff1a;2014.07&#xff1b; Kernel版本&#xff1a;Linux-3.10&#xff1b; 二&#xff0c;Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01)&#xff0c;并让boo…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...