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

2024.4.15力扣每日一题——设计哈希映射

2024.4.15

      • 题目来源
      • 我的题解
        • 方法一 链表+自定义哈希函数

题目来源

力扣每日一题;题序:706

我的题解

方法一 链表+自定义哈希函数

使用链表存储每个<key,value>。由于题目有限制put的次数不超过10000次,因此对于哈希函数的设计为:hashCode(key)%10000

class MyHashMap {class LinkedList{int[] val;LinkedList next;public LinkedList(){}public LinkedList(int[] v){val=v;}public int size(){LinkedList root=this;int sz=0;while(root!=null){sz++;root=root.next;}return sz;}}private LinkedList[] map;int n=10001;public MyHashMap() {map=new LinkedList[n];}public void put(int key, int value) {int index=myHash(key);//对应位置还未初始化if(map[index]==null){map[index]=new LinkedList(new int[]{key,value});//对应位置的长度为0}else if(map[index].size()==0){map[index]=new LinkedList(new int[]{key,value});}else{LinkedList root=map[index];//链首就是keyif(root.val[0]==key){root.val[1]=value;}else{while(root.next!=null&&root.next.val[0]!=key){root=root.next;}//在链中存在keyif(root.next!=null){root.next.val[1]=value;//链中不存在key}else{root.next=new LinkedList(new int[]{key,value});}}}}public int get(int key) {int index=myHash(key);//对应位置还未初始化if(map[index]==null||map[index].size()==0){return -1;}else{LinkedList root=map[index];//链首就是keyif(root.val[0]==key){return root.val[1];}else{while(root.next!=null&&root.next.val[0]!=key){root=root.next;}//在链中存在keyif(root.next!=null){return root.next.val[1];//链中不存在key}else{return -1;}}}}public void remove(int key) {int index=myHash(key);//对应位置还未初始化||对应位置的长度为0if(map[index]==null||map[index].size()==0){return ;}else{LinkedList root=map[index];//链首就是keyif(root.val[0]==key){map[index]=root.next;}else{while(root.next!=null&&root.next.val[0]!=key){root=root.next;}//在链中存在keyif(root.next!=null){root.next=root.next.next;//链中不存在key}}}}private int myHash(int key){int iHash=Integer.hashCode(key);return iHash%(n-1);}
}

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关文章:

2024.4.15力扣每日一题——设计哈希映射

2024.4.15 题目来源我的题解方法一 链表自定义哈希函数 题目来源 力扣每日一题&#xff1b;题序&#xff1a;706 我的题解 方法一 链表自定义哈希函数 使用链表存储每个<key,value>。由于题目有限制put的次数不超过10000次&#xff0c;因此对于哈希函数的设计为&#…...

数据结构DAY4--哈希表

哈希表 概念&#xff1a;相当于字典&#xff0c;可以根据数据的关键字来寻找相关数据的查找表。 步骤&#xff1a;建立->插入->遍历->查找->销毁 建立 建立数据&#xff0c;形式随意&#xff0c;但一般为结构体&#xff08;储存的数据量大&#xff09;&#xff…...

MySQL二阶段和三阶段提交

在分布式系统中&#xff0c;事务管理是一个至关重要的方面。MySQL作为一种常用的关系型数据库管理系统&#xff0c;提供了二阶段提交&#xff08;Two-Phase Commit&#xff0c;2PC&#xff09;和三阶段提交&#xff08;Three-Phase Commit&#xff0c;3PC&#xff09;等协议来支…...

代码随想录算法训练营第四十二天|01背包问题、416. 分割等和子集

动态规划 文章目录 一、01背包问题二、分割等和子集总结 一、01背包问题 1.在有限的背包内放入最高价值的东西 2.二维数据和一维数据都可以解决 3.二维数据&#xff0c;递推公式为dp[i][j] max(dp[i-1][j], dp[i-1][j-weight[i]]value[i])&#xff0c;分为两个状态&#xff0…...

JVM主要知识点详解

目录 1. 性能监控和调优 1.1 调优相关参数 1.2 内存泄漏排查 1.3 cpu飙⾼ 2. 内存与垃圾回收 2.1JVM的组成&#xff08;面试题&#xff09; 2.2 Java虚拟机栈的组成 2.3 本地方法栈 2.4 堆 2.5 方法区&#xff08;抽象概念&#xff09; 2.5.1 方法区和永久代以及元空…...

hot100 -- 链表(中)

不要觉得力扣核心代码模式麻烦&#xff0c;它确实比不上ACM模式舒服&#xff0c;可以自己处理输入输出 只是你对 链表 和 return 的理解不到位 &#x1f442; ▶ 屿前世 (163.com) &#x1f442; ▶ see you tomorrow (163.com) 目录 &#x1f382;两数相加 &#x1f6a9;删…...

数据结构面试常见问题

数据结构是计算机科学中非常重要的一部分&#xff0c;也是面试中经常被考察的内容。以下是一些在数据结构面试中常见的问题&#xff1a; 1. 数组 (Array): 描述数组和链表的区别。如何在数组中实现循环队列&#xff1f;给定一个数组&#xff0c;如何找到两个数的和等于给定值…...

蓝桥杯2024年第十五届省赛真题-R 格式(高精度乘法 + 加法)

本题链接&#xff1a;蓝桥杯2024年第十五届省赛真题-R 格式 - C语言网 题目&#xff1a;​​​​​​​ 样例&#xff1a; 输入 2 3.14 输出 13 思路&#xff1a; 根据题意&#xff0c;结合数据范围&#xff0c;这是一道模板的高精度乘以低精度问题。 题意是double 类型 d 与…...

普通人做抖音小店真的能赚钱吗?可以,但更取决于个人

大家好&#xff0c;我是电商花花。 现在做抖音小店的基本上都是一些新商家&#xff0c;对于我们众多零基础的朋友来说&#xff0c;是期待也是一份挑战。 抖音小店作为一个充满机会的新兴平台&#xff0c;许多人都欣喜的投入其中&#xff0c;期望能够借此来改变自己的命运&…...

基于单链表实现通讯管理系统!(有完整源码!)

​ 个人主页&#xff1a;秋风起&#xff0c;再归来~ 文章专栏&#xff1a;C语言实战项目 个人格言&#xff1a;悟已往之不谏&#xff0c;知来者犹可追 克心守己&#xff0c;律己则安&#xff01; 1、前言 友友们&#xff0c;这篇文章是基于单链…...

MATLAB入门介绍

MATLAB是由MathWorks公司开发的一款专业的数学计算软件&#xff0c;主要用于算法开发、数据可视化、数据分析以及数值计算等领域。它提供了一个易于使用的环境&#xff0c;让用户可以通过矩阵计算、函数和数据绘图、用户界面的创建以及编程和文档编写来解决各种数学问题。 MATL…...

【k8s】:深入理解 Kubernetes 中的污点(Taints)与容忍度(Tolerations)

【k8s】&#xff1a;深入理解 Kubernetes 中的污点&#xff08;Taints&#xff09;与容忍度&#xff08;Tolerations&#xff09; 1、污点&#xff08;Taints&#xff09;2、容忍度&#xff08;Tolerations&#xff09;3、示例演示-测试污点的具体应用场景3.1 给节点打污点&…...

Angular 使用DomSanitizer防范跨站脚本攻击

跨站脚本Cross-site scripting 简称XSS&#xff0c;是代码注入的一种&#xff0c;是一种网站应用程序的安全漏洞攻击。它允许恶意用户将代码注入到网页上&#xff0c;其他用户在使用网页时就会收到影响&#xff0c;这类攻击通常包含了HTML和用户端脚本语言&#xff08;JS&…...

(八)PostgreSQL的数据库管理

PostgreSQL的数据库管理 基础信息 OS版本&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) DB版本&#xff1a;16.2 pg软件目录&#xff1a;/home/pg16/soft pg数据目录&#xff1a;/home/pg16/data 端口&#xff1a;57771 创建数据库 CREATE DATABASE创建一…...

外包干了30天,技术倒退明显

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落&#xff01; 而我已经在一个企业干了四年的功能…...

ruoyi-nbcio-plus基于vue3的flowable的自定义业务单表例子的升级修改

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://122.227.135.243:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a…...

【ENSP】华为三层交换机配置AAA认证,开启telnet服务

配置步骤 1.给交换机配置ip地址&#xff0c;以便登陆 2.配置AAA&#xff0c;用户名&#xff0c;密码&#xff0c;服务类型&#xff0c;用户权限 3.配置接入设备的数量 4.开启telnet服务 LSW2交换机配置 u t m #关闭提示 sys …...

collections模块下的Counter函数讲解

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️感谢大家点赞&#x1f44d;&…...

HarmonyOS开发实例:【分布式邮件】

概述 基于TS扩展的声明式开发范式编程语言编写的一个分布式邮件系统&#xff0c;可以由一台设备拉起另一台设备&#xff0c;每次改动邮件内容&#xff0c;都会同步更新两台设备的信息。效果图如下&#xff1a; 搭建OpenHarmony开发环境 完成本篇Codelab我们首先要完成开发环境…...

llama2.c与chinese-baby-llama2语言模型本地部署推理

文章目录 简介Github文档克隆源码英文模型编译运行中文模型&#xff08;280M&#xff09;main函数 简介 llama2.c是一个极简的Llama 2 LLM全栈工具&#xff0c;使用一个简单的 700 行 C 文件 ( run.c ) 对其进行推理。llama2.c涉及LLM微调、模型构建、推理端末部署&#xff08…...

别再只用XXL-Job了!用Go写的Temporal,搞定延时发短信、定时对账这些复杂工作流真香

从XXL-Job到Temporal&#xff1a;用Go重构复杂工作流的实战指南 如果你正在使用Java系的XXL-Job处理定时任务&#xff0c;却苦于复杂业务逻辑的编排困难&#xff0c;那么是时候认识Temporal了。这个用Go编写的分布式工作流引擎&#xff0c;正在重新定义我们处理延时任务、多步骤…...

如何高效配置ClickHouse连接器:专业用户的完整指南

如何高效配置ClickHouse连接器&#xff1a;专业用户的完整指南 【免费下载链接】clickhouse-odbc ODBC driver for ClickHouse 项目地址: https://gitcode.com/gh_mirrors/cl/clickhouse-odbc ClickHouse ODBC驱动是连接ClickHouse数据库与各类数据分析工具的关键桥梁&a…...

GlosSI完全攻略:一键实现Steam控制器全局支持的终极方案

GlosSI完全攻略&#xff1a;一键实现Steam控制器全局支持的终极方案 【免费下载链接】GlosSI Tool for using Steam-Input controller rebinding at a system level alongside a global overlay 项目地址: https://gitcode.com/gh_mirrors/gl/GlosSI 有没有想过&#xf…...

开源状态监控工具openclaw-status:从原理到部署的完整实践指南

1. 项目概述&#xff1a;一个开源状态监控工具的诞生最近在折腾一个开源项目&#xff0c;叫openclaw-status&#xff0c;是vibe-with-me-tools组织下的一个子项目。简单来说&#xff0c;这是一个用于监控和展示各种服务、应用、设备状态的工具。听起来是不是有点像那些商业化的…...

【人生底稿 23】新疆出差记・上篇:初入边疆,三个半小时的漫长飞行

2024 年的 6 月&#xff0c;刚在赣州、河北、湖南的项目里连轴转完&#xff0c;手里的需求设计还没完全收尾&#xff0c;一通临时电话&#xff0c;打破了我短暂的节奏 —— 任务突然下达&#xff1a;陪客户前往新疆乌鲁木齐的甲方现场。这不是我第一次出差&#xff0c;却是第一…...

Windows删除文件权限问题解决

首先&#xff0c;强制删除的文件将不经过回收站。方法一&#xff1a;可视化获取权限如果文件不是被系统占用&#xff0c;可以直接在文件属性中抢夺控制权。获取所有权&#xff1a;右键点击该文件/文件夹&#xff0c;选择 属性 → 安全 → 高级-。在打开的窗口中&#xff0c;点击…...

AI智能体文化档案:用Next.js静态站点构建数字人类学观察站

1. 项目概述&#xff1a;一个观察AI智能体文化的数字档案馆最近在GitHub上闲逛&#xff0c;发现了一个让我眼前一亮的项目&#xff1a;The MoltStein Files。这可不是一个普通的代码仓库&#xff0c;而是一个专注于记录和存档AI智能体之间“社交”行为的数字档案馆。简单来说&a…...

英雄联盟R3nzSkin换肤工具:5分钟快速上手免费皮肤解锁指南

英雄联盟R3nzSkin换肤工具&#xff1a;5分钟快速上手免费皮肤解锁指南 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server 还在为英雄联盟国服昂贵的皮肤价…...

科研工作流构建指南:从文献管理到论文写作的全流程工具链实践

1. 项目概述与核心价值 如果你是一名在读的硕士、博士研究生&#xff0c;或者刚刚踏入科研院所、企业研发部门的新人研究员&#xff0c;那么“如何高效地开展研究”这个问题&#xff0c;大概率会持续困扰你很长一段时间。从浩如烟海的文献中精准定位方向&#xff0c;到设计严谨…...

Cortex-R52内存管理与实时性优化技术解析

1. Cortex-R52内存管理架构解析Cortex-R52作为Armv8-R架构的旗舰级实时处理器&#xff0c;其内存管理系统针对高可靠性场景进行了深度优化。与传统MMU不同&#xff0c;R52采用了增强型MPU&#xff08;Memory Protection Unit&#xff09;设计&#xff0c;通过16-24个可编程保护…...