套用模板网站哪里有做网站培训的

news/2025/10/1 11:09:14/文章来源:
套用模板网站,哪里有做网站培训的,做数据结构基础的网站,网站建设项目分工题目 不使用任何内建的哈希表库设计一个哈希映射#xff08;HashMap#xff09;。 实现 MyHashMap 类#xff1a; MyHashMap() 用空映射初始化对象 void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中#xff0c;则更新…题目 不使用任何内建的哈希表库设计一个哈希映射HashMap。 实现 MyHashMap 类 MyHashMap() 用空映射初始化对象 void put(int key, int value) 向 HashMap 插入一个键值对 (key, value) 。如果 key 已经存在于映射中则更新其对应的值 value 。 int get(int key) 返回特定的 key 所映射的 value 如果映射中不包含 key 的映射返回 -1 。 void remove(key) 如果映射中存在 key 的映射则移除 key 和它所对应的 value 。 示例 输入 [“MyHashMap”, “put”, “put”, “get”, “get”, “put”, “get”, “remove”, “get”] [[], [1, 1], [2, 2], [1], [3], [2, 1], [2], [2], [2]] 输出 [null, null, null, 1, -1, null, 1, null, -1] 解释 MyHashMap myHashMap new MyHashMap(); myHashMap.put(1, 1); // myHashMap 现在为 [[1,1]] myHashMap.put(2, 2); // myHashMap 现在为 [[1,1], [2,2]] myHashMap.get(1); // 返回 1 myHashMap 现在为 [[1,1], [2,2]] myHashMap.get(3); // 返回 -1未找到myHashMap 现在为 [[1,1], [2,2]] myHashMap.put(2, 1); // myHashMap 现在为 [[1,1], [2,1]]更新已有的值 myHashMap.get(2); // 返回 1 myHashMap 现在为 [[1,1], [2,1]] myHashMap.remove(2); // 删除键为 2 的数据myHashMap 现在为 [[1,1]] myHashMap.get(2); // 返回 -1未找到myHashMap 现在为 [[1,1]] 提示 0 key, value 10^6 最多调用 104 次 put、get 和 remove 方法 分析 这道题目要求自建一个map最简单的办法就是通过数组实现key作为数组的下标value作为数组元素这种有个问题在于需要给数组做一遍初始化为一个负数(因为map的value也可能是0)初始化一个10^6的数组还是需要一定的时间的同时空间复杂度也很大如果一直没有元素插入进来就会有这个数组一直占着内存 或者换一个思路减少空间复杂度的思路一定是链表新增一个元素给他开一个空间同时为了减少初始化的遍历时间我们可以把这个数组的长度设置为1000也无需任何初始化操作这样后续肯定会有不同的key命中到相同的索引上为了解决这个问题我们把数组的元素类型设置成一个链表结点链表结点的key是map的keyvalue是map的value我们通过一个hash函数来把map的key换算到1000以内保证可以在数组中有对应的索引这样如果我们的hash函数足够的分散的话就能保证我们的链表也足够分散putget/remove函数的时间复杂度也不会太大。当然极端情况下所有的key都命中到一个链表那这种情况下就需要遍历这个长链表去插入查询删除元素这样其实也是非常耗时的 public class MyHashMap {Node[] a;public class Node{int key;int value;Node next;Node(int key,int value){this.key key;this.value value;this.next null;}}public MyHashMap(){a new Node[1000];}public void put(int key,int value) {int hashKey getHash(key);Node head a[hashKey];if(head null) {a[hashKey] new Node(key,value);} else {Node pre null;while(head ! null) {if(head.key key) {head.value value;return;} else {pre head;head head.next;}}pre.next new Node(key,value);}}public void remove(int key) {int hashKey getHash(key);Node head a[hashKey];if(head ! null head.key key) {a[hashKey] head.next;return;}Node pre null;while(head ! null) {if(head.key key) {pre.next head.next;return;} else {pre head;head head.next;}}}public int get(int key) {int hashKey getHash(key);Node head a[hashKey];while(head ! null) {if(head.key key) {return head.value;} else {head head.next;}}return -1;}public int getHash(int key) {int m Integer.hashCode(key);return m / 1000;} } public class designHashMap {public static void main(String[] args) {MyHashMap myHashMap new MyHashMap();myHashMap.put(1, 1); // myHashMap 现在为 [[1,1]]myHashMap.put(2, 2); // myHashMap 现在为 [[1,1], [2,2]]System.out.println(myHashMap.get(1)); // 返回 1 myHashMap 现在为 [[1,1], [2,2]]System.out.println(myHashMap.get(3)); // 返回 -1未找到myHashMap 现在为 [[1,1], [2,2]]myHashMap.put(2, 1); // myHashMap 现在为 [[1,1], [2,1]]更新已有的值System.out.println(myHashMap.get(2)); // 返回 1 myHashMap 现在为 [[1,1], [2,1]]myHashMap.remove(2); // 删除键为 2 的数据myHashMap 现在为 [[1,1]]System.out.println(myHashMap.get(2)); // 返回 -1未找到myHashMap 现在为 [[1,1]]} }

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA强化-简易频率计 - 实践

FPGA强化-简易频率计 - 实践2025-10-01 11:01 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important;…

基本分页存储管理的基本概念

将内存分为一个个大小相等的分区,每个分区就是一个页框(页框=页帧=内存块=物理快=物理页面)每一个页框都有一个编号--页框号,页框号从0开始。 将进程的逻辑地址空间也分为与页框大小相等的一个个部分,每个部分称为…

无锡网站制作哪里有国家高新技术企业申报时间

最近在做docker容器的时候遇到了问题,安装的GD库没有JPEG支持,因为项目用到了绘图技术,这个支持必不可少。要解决这个问题也很简单: 安装jpeg支持,重新编译gd库,生成gd.so文件,重新加载gd库扩展…

设计企业的网站个人网页设计硬件需求

Spectral Python (SPy) 是一个纯 Python 模块,用于处理高光谱图像数据。它具有读取、显示、操作和分类高光谱图像的功能。 SPy 需要 Python 并依赖于其他几个免费提供的 Python 模块。在安装 SPy 之前,您应该确保满足其依赖项。虽然您可以仅使用 Python…

luogu P6503 [COCI 2010/2011 #3] DIFERENCIJA

题目大意 题面 让我们求一个序列中的 \[\sum^{n}_{i=1}\sum^{n}_{j=i}(\max_{i\leq k\leq j} a_k-\min_{i\leq k \leq j} a_k) \]Sol 由于暴力是\(O(n^2)\)的,所以我们需要优化 我们先看暴力的流程:每次选取一段区间求…

做网站一个月能挣多少钱洛阳做网站哪家便宜

1. 适配器模式 (Adapter Pattern) 适配器模式是一种结构型设计模式,旨在将一个类的接口转换成客户端所期待的另一个接口,从而使原本由于接口不兼容而无法一起工作的类能够协同工作。适配器模式通常用于需要复用现有类但其接口与要求不匹配的情况。 1.1…

网络公司网站建设服务dw软件免费安装

候选基因如何分析? 通常情况下关联分析会得到一大堆候选基因,总不可能每个都有用,因此需要对候选基因进行深一步分析,本篇笔记分享一下群体遗传学研究中GWAS候选位点与候选基因的筛选思路。主要的方式包括单基因关联分析、连锁程度…

2025宅基地纠纷律所权威推荐榜:专业调解与胜诉保障实力之选

宅基地纠纷作为农村土地争议的重要类型,近年来呈现持续增长态势。随着城乡一体化进程加速和土地资源价值提升,涉及宅基地使用权确认、边界划分、拆迁补偿等案件数量显著上升。这类纠纷往往牵涉农民切身利益,法律关系…

新化 网站开发比较有特色的网站

多模字符串匹配算法在这里指的是在一个字符串中寻找多个模式字符字串的问题。一般来说,给出一个长字符串和很多短模式字符串,如何最快最省的求出哪些模式字符串出现在长字符串中是我们所要思考的。该算法广泛应用于关键字过滤、入侵检测、病毒检测、分词…

一般做网站宽度是多少深圳的设计网站

LLM-based KG KnowLM OpenSPGKG-based RAG 基本原理 从query出发的语义解析 pre-LLM方法 思想:直接将问题解析为对应的逻辑表达式,然后到知识图谱中查询。 方法:通常包含逻辑表达式、语义解析算法、语义解析模型训练三部分。一般步骤是将问句…

做汽车配件招聘网站徐州 网站建设

提示:Grounding DINO、TAG2TEXT、RAM、RAM论文解读 文章目录 前言一、Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection1、摘要2、背景3、部分文献翻译4、贡献5、模型结构解读a.模型整体结构b.特征增强结构c.解码结构 6、实…

wordpress 博客网站是免费的么wordpress首页文件夹

面向对象编程思想 1、什么是面向过程 传统的面向过程的编程思想总结起来就八个字——自顶向下,逐步细化! → 将要实现的功能描述为一个从开始到结束按部就班的连续的“步骤” → 依次逐步完成这些步骤,如果某一个步骤的难度较大&#xff…

网站开发岗位实际情况做ae动图的网站

一.IOU 1.GIOU解决没有交集的框,IOU为0,其损失函数导数为0,无法优化的问题。 图1 GIOU,IOU,l2范数差异 a)可看出 l2值一样,IOU值是不一样的,说明L1,L2这些Loss用于回归任务时,不能等价于最后用于评测检测的IoU. b)可看出当框有包含关系,GIOU就退化为IOU 其是找…

docker build 时报错 Error fail to solve

docker build 时报错 Error fail to solve,排查处理。问题:填写镜像源: 在Docke Desktop的设置中,选择Docker Engine, 填写: {"builder": {"gc": {"defaultKeepStorage": "20…

web图像触发防盗链,无法显示

web图像触发防盗链,背景却无非正常显示,但是音乐播放器和别的功能模块却可以正常访问网络加载的解决方法。问题 网页在Windows直接运行的时候一切正常,但是通过docker以后,浏览器通过localhost:12345访问时,背景却…

成都市网站建设费用及企业站长统计芭乐官方网站下载

第二章 SpringFramework 五、Spring AOP 面向切面编程 6. Spring AOP 基于 XML 方式实现(了解) 6.1 准备工作 加入依赖和基于注解的 AOP 时一样。准备代码把测试基于注解功能时的 Java 类复制到新 module 中,去除所有注解。 6.2 配置 Sp…

.NET操作Excel:单元格范围 (Range) 的精确定位与常用管理 (下)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

TCP的学习 - 实践

TCP的学习 - 实践2025-10-01 10:32 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

24届(华为OD)Java面经 - 教程

24届(华为OD)Java面经 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…