C++ | Leetcode C++题解之第432题全O(1)的数据结构

题目:

题解:

class AllOne {list<pair<unordered_set<string>, int>> lst;unordered_map<string, list<pair<unordered_set<string>, int>>::iterator> nodes;public:AllOne() {}void inc(string key) {if (nodes.count(key)) {auto cur = nodes[key], nxt = next(cur);if (nxt == lst.end() || nxt->second > cur->second + 1) {unordered_set<string> s({key});nodes[key] = lst.emplace(nxt, s, cur->second + 1);} else {nxt->first.emplace(key);nodes[key] = nxt;}cur->first.erase(key);if (cur->first.empty()) {lst.erase(cur);}} else { // key 不在链表中if (lst.empty() || lst.begin()->second > 1) {unordered_set<string> s({key});lst.emplace_front(s, 1);} else {lst.begin()->first.emplace(key);}nodes[key] = lst.begin();}}void dec(string key) {auto cur = nodes[key];if (cur->second == 1) { // key 仅出现一次,将其移出 nodesnodes.erase(key);} else {auto pre = prev(cur);if (cur == lst.begin() || pre->second < cur->second - 1) {unordered_set<string> s({key});nodes[key] = lst.emplace(cur, s, cur->second - 1);} else {pre->first.emplace(key);nodes[key] = pre;}}cur->first.erase(key);if (cur->first.empty()) {lst.erase(cur);}}string getMaxKey() {return lst.empty() ? "" : *lst.rbegin()->first.begin();}string getMinKey() {return lst.empty() ? "" : *lst.begin()->first.begin();}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/148446.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

安卓13删除下拉栏中的设置按钮 android13删除设置按钮

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 顶部导航栏下拉可以看到,底部这里有个设置按钮,点击可以进入设备的设置页面,这里我们将更改为删除,不同用户通过这个地方进入设置。也就是下面这个按钮。 2.问题分析…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第九集:制作小骑士基本的攻击行为Attack以及为敌人制作生命系统和受伤系统

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、制作小骑士基本的攻击行为Attack 1.制作动画以及使用UNITY编辑器编辑2.使用代码实现扩展新的落地行为和重落地行为3.使用状态机实现击中敌人造成伤害机制二…

前端vue-3种生命周期,只能在各自的领域使用

上面的表格可以简化为下面的两句话&#xff1a; setup是语法糖&#xff0c;下面的两个import导入是vue3和vue2的区别&#xff0c;现在的vue3直接导入&#xff0c;比之前vue2简单 还可以是导入两个生命周期函数

kafka负载均衡迁移(通过kafka eagle)

在grafana监控中发现kafka的各个节点磁盘不均匀 出现这样的情况是因为kafka默认是以文件数作为平衡的条件的。换句话说&#xff0c;kafka不会管一个副本有多大&#xff0c;只会看磁盘中有多少个副本文件。 解决方式&#xff1a; 1、修改策略&#xff0c;改为按照磁盘大小平衡…

闯关leetcode——69. Sqrt(x)

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/sqrtx/description/ 内容 Given a non-negative integer x, return the square root of x rounded down to the nearest integer. The returned integer should be non-negative as well. You mu…

《动手学深度学习》笔记1.10——激活函数←模型初始化←数值稳定性

目录 1. 数值稳定性 1.1 神经网络的梯度 1.2 数值稳定性的常见两个问题 1.3 梯度爆炸 1.3.1 MLP的例子 1.3.2 使用ReLU激活函数 1.3.3 产生的问题 1.4 梯度消失 1.4.1 使用sigmoid激活函数 1.4.2 梯度消失的问题 1.5 总结 2. 让训练更稳定 2.1 目标 (ResNet, LSTM…

深入探究PR:那些被忽视却超实用的视频剪辑工具

如果想要了解视频剪辑的工具&#xff0c;那一定听说过pr视频剪辑吧。如果你是新手其实我更推荐你从简单的视频剪辑工具入手&#xff0c;这次我就介绍一些简单好操作的视频剪辑工具来入门吧。 1.福晰视频剪辑 连接直达>>https://www.pdf365.cn/foxit-clip/ 这款工具操…

论文阅读 | 一种基于潜在向量优化的可证明安全的图像隐写方法(TMM 2023)

TMM 2023 中国科学技术大学 针对现有的可证明安全的图像隐写不能抵抗有损图像操作&#xff0c;而现有的生成图像隐写不能证明安全问题&#xff0c;提出一种基于潜在向量优化的可证明安全的图像隐写方法&#xff08;名为PARIS&#xff09;&#xff0c;该方法受到逆采样器和噪声…

Unity 热更新(HybridCLR+Addressable)-创建Addressable资源

三、创建Addressable资源 创建三个文件夹&#xff0c;放Addressable资源&#xff0c;里面对应放程序集&#xff0c;预制体以及场景 拖拽到Addressable Groups对应组中 其中文件名太长&#xff0c;带着路径&#xff0c;可以简化名字 创建一个脚本&#xff0c;对于这个脚本进行一…

C#常用数据结构栈的介绍

定义 在C#中&#xff0c;Stack<T> 是一个后进先出&#xff08;LIFO&#xff0c;Last-In-First-Out&#xff09;集合类&#xff0c;位于System.Collections.Generic 命名空间中。Stack<T> 允许你将元素压入栈顶&#xff0c;并从栈顶弹出元素。 不难看出&#xff0c;…

量子计算Quantum Computing

引子&#xff1a;朋友闲谈&#xff0c;问及工作&#xff0c;一个朋友说&#xff0c;他在一家做量子通信的公司上班&#xff0c;具体岗位是做结构设计&#xff0c;他抱怨说&#xff0c;直到现在他都搞不懂量子计算是什么&#xff1f; 一、量子计算是什么&#xff1f; 什么是量子…

LCD屏JD9853各个接口最大支持速率

概述 电子产品开发时常会遇到有带LCD屏的产品&#xff0c;是怎么计算出来的呢&#xff1f;接下来以JD9853这颗驱动IC举例说明&#xff0c;改驱动IC分别支持&#xff1a;8080、(3-line SPI&#xff09;、 (4-line SPI)、QSPI、RGB 1、8080 通过“时钟周期为传输速率的倒数”&a…

k8s上安装prometheus

一、下载对应的kube-prometheus源码 github地址&#xff1a;GitHub - prometheus-operator/kube-prometheus: Use Prometheus to monitor Kubernetes and applications running on Kubernetes 1&#xff09;进入目录 [rootk8s-master ~]# cd kube-prometheus [rootk8s-master…

Spring Boot 学习之路 -- 配置项目

前言 最近因为业务需要&#xff0c;被拉去研究后端的项目&#xff0c;代码基于 Spring Boot&#xff0c;对我来说完全小白&#xff0c;需要重新学习研究…出于个人习惯&#xff0c;会以 Blog 文章的方式做一些记录&#xff0c;文章内容基本来源于「 Spring Boot 从入门到精通&…

周家庄智慧旅游小程序

项目概述 周家庄智慧旅游小程序将通过数字化手段提升游客的旅游体验&#xff0c;依托周家庄的自然与文化资源&#xff0c;打造智慧旅游新模式。该小程序将结合虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和人工智能等技术&#xff0c;提供丰富的…

国际化适配对照

中文 zh 葡萄牙语 pt 荷兰语 nl 泰文 th 匈牙利语 hu 波兰 pl 土耳其 tr 乌克兰 uk 希腊 el 印度尼西亚 in 越南语 vi 阿拉伯语 ar 希波来语 iw 英语 en 日语 ja 德语 de 法语 fr 意大利语 it 西班牙语 es 俄罗斯语 ru

1.5 计算机网络的性能指标

参考&#xff1a;&#x1f4d5;深入浅出计算机网络 目录 速率 带宽 吞吐量 时延 时延带宽积 往返时间 利用率 丢包率 速率 速率是指数据的传送速率&#xff08;即每秒传送多少个比特&#xff09;&#xff0c;也称为数据率&#xff08;Data Rate&#xff09;或比特率&am…

Python | Leetcode Python题解之第432题全O(1)的数据结构

题目&#xff1a; 题解&#xff1a; class Node:def __init__(self, key"", count0):self.prev Noneself.next Noneself.keys {key}self.count countdef insert(self, node: Node) -> Node: # 在 self 后插入 nodenode.prev selfnode.next self.nextnode.…

Axure9破解

1.下载安装包 通过百度网盘分享的文件&#xff1a;Axure RP 9.zip 链接&#xff1a;https://pan.baidu.com/s/1Lcu-gg4qF8tTkOlt7bC2ww?pwdwmqq 提取码&#xff1a;wmqq 2.设置登录以及破解码 位置&#xff1a;帮助-管理授权-添加key Licensee&#xff1a;123456 Key&#…

健身房管理系统设计与实现

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装健身房管理系统软件来发挥其高效地信息处理的作用&#xff…