【专项刷题】— 哈希表

1、两数之和 - 力扣(LeetCode)

思路:

  1. 使用哈希表,将每次x = target  -  nums[i],查看哈希表中是否含有这个x值
  2. 代码:
    public int[] twoSum(int[] nums, int target) {int n = nums.length;Map<Integer,Integer> hash = new HashMap<>();for(int i = 0; i < n; i++){int x = target - nums[i];if(hash.containsKey(x)){return new int[]{i, hash.get(x)};}//没有就继续添加到哈希表hash.put(nums[i],i);}//照顾编译器return new int[]{-1,-1};}

 2、判定是否互为字符重排 - 力扣(LeetCode)

思路:

  1. 先判断两个字符串的长度,长度不相等直接返回false
  2. 用一个数组表示的哈希表,先添加s1的字符,再遍历s2直接减去当前字符的值,然后再判断一下,如果出现小于零的数,就说明两个字符串有不相等的字符,返回false
  3. 代码:
    public boolean CheckPermutation(String s1, String s2) {if(s1.length() != s2.length()){return false;}int[] hash = new int[26];//将s1中的字符添加到哈希表中for(int i= 0; i < s1.length(); i++){hash[s1.charAt(i) - 'a']++;}//将s2添加到哈希表中,顺便减去相同字符的值,小于0就返回for(int i = 0; i < s2.length(); i++){hash[s2.charAt(i) - 'a']--;if(hash[s2.charAt(i) - 'a'] < 0){return false;}}return true;}
    

 3、存在重复元素 II - 力扣(LeetCode)

思路:

  1. 将数据存储在哈希表中,遍历数组,遍历到一个数就在哈希表中查找是否有当前数
  2. 有的话就开始进行判断,没有的话就添加到哈希表
  3. 代码:
    public boolean containsNearbyDuplicate(int[] nums, int k) {int n = nums.length;Map<Integer,Integer> hash = new HashMap<>();for(int i = 0; i < n; i++){if(hash.containsKey(nums[i])){int a = hash.get(nums[i]);if(Math.abs(a - i) <= k){return true;}}hash.put(nums[i],i);}return false;}

 4、字母异位词分组 - 力扣(LeetCode)

思路:

  1. 首先将字符串数组里面的字符分组,然后将它们排序
  2. 然后遍历数组的时候判断一下key,创建一个key,这个可以都是已经排序好的了,检查哈希表中是否有这个key
  3. 有的话就就将原字符添加到顺序表中,没有的话就添加到哈希表中,创建顺序表
  4. 代码:
    public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> hash = new HashMap<>();//先给字符串数组分组,然后每组字符都排序for(String s : strs){char[] tmp = s.toCharArray();//排序Arrays.sort(tmp);//创建key,这里面的字符串都是已经排序的String key = new String(tmp);//判断if(! hash.containsKey(key)){hash.put(key,new ArrayList());}//把原字符添加到数组中hash.get(key).add(s);}return new ArrayList(hash.values());}

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

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

相关文章

坐牢第三十四天(c++)

一.作业 1.栈的手写 #include <iostream> using namespace std; // 封装一个栈 class stcak { private:int *data; //int max_size; // 最大容量int top; // 下标 public:// 无参构造函数stcak();// 有参构造函数stcak(int size);// 拷贝构造函数stcak(const s…

0903作业+思维导图

一、作业 1》多态的实现 1、代码 #include <iostream>using namespace std; //父类 class Person { public:string name;int age; public:Person(){}Person(string n,int a):name(n),age(a){}~Person(){}//纯虚函数virtual void show() 0; }; //子类1 class Stu:publ…

wsl下将Ubuntu从c盘移动到其他盘

一、概述 因为自己的C盘内存不足&#xff0c;加上之后需要在Ubuntu下面下载许多的内容和东西&#xff0c;需要将其移动到d盘上面&#xff0c;这样可以拥有更大的空间。这里记载了一下自己的操作过程。 二、具体步骤 &#xff08;一&#xff09;过程 1.查看当前系统中wsl分发版…

Haskell爬虫:连接管理与HTTP请求性能

爬虫技术作为数据抓取的重要手段&#xff0c;其效率和性能直接影响到数据获取的质量与速度。Haskell&#xff0c;作为一种纯函数式编程语言&#xff0c;以其强大的类型系统和并发处理能力&#xff0c;在构建高效爬虫方面展现出独特的优势。本文将探讨在Haskell中如何通过连接管…

技术Leader在训练团队思考力中的核心职责

引言 在技术驱动的行业中&#xff0c;技术团队的创新能力与问题解决能力往往直接关联到项目的成败与企业的竞争力。而这一切的基石&#xff0c;离不开团队中每一个成员的思考力。作为技术团队的领航者&#xff0c;技术Leader在培养和提升团队思考力方面扮演着至关重要的角色。…

【Godot4.3】基于纯绘图函数自定义的线框图控件

概述 同样是来自2023年7月份的一项实验性工作&#xff0c;基于纯绘图函数扩展的一套线框图控件。初期只实现了三个组件&#xff0c;矩形、占位框和垂直滚动条。 本文中的三个控件类已经经过了继承化的修改&#xff0c;使得代码更少。它们的继承关系如下&#xff1a; 源代码 W…

AI智能分析/智慧安防EasyCVR视频汇聚平台新版本(V3.6.0)播放鉴权与播放限制时长的区别介绍

随着科技的飞速发展&#xff0c;视频技术已成为现代社会不可或缺的一部分&#xff0c;广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。EasyCVR视频汇聚平台作为视频技术的佼佼者&#xff0c;不断推陈出新&#xff0c;通过功能更新迭代&#xff0c;为用户提供更加…

WEB服务与虚拟主机/IIS中间件部署

WWW&#xff08;庞大的信息系统&#xff09;是基于客户机/服务器⽅式的信息发现技术和超⽂本技术的综合。网页浏览器//网页服务器 WWW的构建基于三项核⼼技术&#xff1a; HTTP&#xff1a;超文本传输协议&#xff0c;⽤于在Web服务器和客户端之间传输数据。HTML&#xff1a;⽤…

SpringCloud开发实战(三):集成Eureka注册中心

目录 SpringCloud开发实战&#xff08;一&#xff09;&#xff1a;搭建SpringCloud框架 SpringCloud开发实战&#xff08;二&#xff09;&#xff1a;通过RestTemplate实现远程调用 Eureka简介 Eureka 是一个基于 Java 的开源技术&#xff0c;最广为人知的是作为 Netflix 开发…

ElasticSearch学习笔记(六)自动补全、拼音分词器、RabbitMQ实现数据同步

文章目录 前言11 自动补全11.1 拼音分词器11.2 自定义分词器11.3 自动补全查询 12 数据同步12.1 实现方案12.1.1 同步调用12.1.2 异步通知12.1.3 监听binlog 12.2 异步通知实现数据同步12.2.1 声明交换机和队列12.2.2 发送MQ消息12.2.3 接收MQ消息并操作ES 前言 ElasticSearch…

互联网职场说 | “400w能否实现‘躺平’的生活”

近年来&#xff0c;“躺平”一词在国内职场中频频出现&#xff0c;表达了许多年轻人对工作压力和生活负担的不满与逃避心理。 近日&#xff0c;一位网友在社交平台上提出了一个引人深思的问题&#xff1a;“400万可以躺平吗&#xff1f;有房有车无贷款。” 网友们也各抒己见&a…

GB/T28181规范和JT1078交通部标差异

技术背景 好多开发者区分不太清楚GB/T28181和JT1078规范&#xff0c;实际上&#xff0c;二者在规范定义、技术特点、过检认证以及应用场景等方面均存在显著差异。两者各有其适用领域和优势&#xff0c;但在某些特定场景下也可能需要相互协作以实现更全面的监控和管理。 规范定…

[学术论文] KBS期刊介绍及投稿流程学习笔记

该专栏主要是论文投稿的记录笔记&#xff0c;希望对初学者有所帮助&#xff0c;也希望大家论文都能命中。这篇文章主要介绍人工智能一区期刊Knowledge-Based Systems的投稿笔记&#xff0c;希望您喜欢&#xff01; 文章目录 一.期刊介绍二.投稿地址及模板1.投稿地址2.LaTex下载…

[工具使用]git

git fetch 获取远程仓库内容&#xff0c;但未合入本地仓库&#xff1b; git rebase 获取远程仓库内容&#xff0c;并更改基地合入本地仓库&#xff1b; 将master分支的内容合入feature分支&#xff1a; 当在feature分支上执行git rebase master时&#xff0c;git会从master…

Datawhale X 李宏毅苹果书 AI夏令营-深度学习进阶task3:批量归一化

1.批量归一化 如果误差表面很崎岖&#xff0c;它比较难训练。批量归一化&#xff08;Batch Normalization&#xff0c;BN&#xff09;就是其中一个“把山铲平”的想法 如图 所示&#xff0c;假设两个参数对损失的斜率差别非常大&#xff0c;在 w1 这个方向上面&#xff0c;斜…

聚观早报 | 苹果推出AI消除功能;比亚迪2024上半年营收

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 8月30日消息 苹果推出AI消除功能 比亚迪2024上半年营收 真我GT7 Pro渲染图曝光 苹果iPhone 16开始印度量产 故宫…

旗帜分田(华为od机考题)

一、题目 1.原题 从前有个村庄&#xff0c;村民们喜欢在各种田地上插上小旗子&#xff0c;旗子上标识了各种不同的数字。 某天集体村民决定将覆盖相同数字的最小矩阵形的土地的分配给为村里做出巨大贡献的村民&#xff0c; 请问&#xff0c;此次分配土地&#xff0c;做出贡献…

MMsegmentation与MMdeploy简单使用

最近涉及到了图像分割的任务&#xff0c;于是拿来写下博客加深下使用。 MMsegmentation与MMdeploy的环境配置暂不做讲解&#xff0c;在官网和其他博客中有很多说明。 MMdeploy主要是把pt转为 onnx_int8的情况。 MMsegmentation环境配置可以参考 : 安装与配置MMSegmentation 目录…

DriveLM的baseline复现

DriveLM是一篇很有意思的工作&#xff0c;把自动驾驶跟MLLM结合到一起了&#xff0c;实现端到端的决策。 Repo&#xff1a;https://github.com/OpenDriveLab/DriveLM 该工作是基于nuScenes数据集做的&#xff0c;官方paper里给出了数据的具体构建方式&#xff0c;感兴趣的可以…

[HZNUCTF 2023 preliminary]easyAPK-快坚持不下去的第三天

第一做安卓题&#xff0c;前提jadx,java环境&#xff0c;模拟器&#xff0c;我配了好久&#xff0c; 这段代码实现了一个简单的登录界面&#xff0c;用户需要输入用户名和密码。用户名和密码会与预设的硬编码值进行比较&#xff0c;登录成功后会启动另一个 Activity。如果密码错…