数据结构哈希表总结

article/2025/7/14 11:40:18

349. 两个数组的交集

力扣题目链接(opens new window)

题意:给定两个数组,编写一个函数来计算它们的交集。

349. 两个数组的交集

说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。

public int[] intersection(int[] nums1, int[] nums2) {Map<Integer,Integer> map = new HashMap<>(nums1.length);Set<Integer> rs = new HashSet<>(nums2.length);for(int i = 0; i < nums1.length; i++){map.put(nums1[i],1);}for(int j = 0; j < nums2.length; j++){if(map.containsKey(nums2[j])){rs.add(nums2[j]);}}int [] res = new int [rs.size()];int j = 0;Iterator<Integer> iterator = rs.iterator();while(iterator.hasNext()){res[j++] = iterator.next();}return res;
}

这道题不用拆分每个位的数值是多少,先存后计算浪费时间,直接拆分取模计算结果。 

第202题. 快乐数

力扣题目链接(opens new window)

编写一个算法来判断一个数 n 是不是快乐数。

「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为  1,那么这个数就是快乐数。

如果 n 是快乐数就返回 True ;不是,则返回 False 。

示例:

输入:19
输出:true
解释:
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1

public boolean isHappy(int n) {Map<Integer,Integer> map = new HashMap<>();if(n == 1){return true;}int total = n;map.put(total, 1);while (total != 1) {total = getNextNumber(total);if(map.containsKey(total)){return false;}map.put(total, 1);}return true;
}
public int getNextNumber(int n){int sum = 0;while(n >= 10){int num = n % 10;sum+= num * num;n = n /10;}sum += n*n;return sum;
}

  这道题的关键是哪个无限循环的意思是拆分后的数字平方和的sum,来回出现

242.有效的字母异位词

力扣题目链接(opens new window)

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

示例 1: 输入: s = "anagram", t = "nagaram" 输出: true

示例 2: 输入: s = "rat", t = "car" 输出: false

说明: 你可以假设字符串只包含小写字母。

public boolean isAnagram(String s, String t) {if(s.length() != t.length()  || s.equals(t)){return false;}int[] record = new int[26];for (int i = 0; i < s.length(); i++) {record[s.charAt(i) - 'a']++;     // 并不需要记住字符a的ASCII,只要求出一个相对数值就可以了}for (int i = 0; i < t.length(); i++) {record[t.charAt(i) - 'a']--;}for (int count: record) {if (count != 0) {               // record数组如果有的元素不为零0,说明字符串s和t 一定是谁多了字符或者谁少了字符。return false;}}return true;
}

这道题的技巧是用数组值 - 'a' 作为下标  然后record第一个加,第二个减少,通过判断最终record 各位的值是否为0。

Map<String, Long> countMap = Arrays.asList(s1.split("")).stream().flatMap(s -> Arrays.stream(s.split(""))).filter(s -> !s.trim().isEmpty()).collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));for (String key : countMap.keySet()) {System.out.println("key is " + key + " value is:" + countMap.get(key));}List<Persion> persons = new ArrayList<>();Persion persion = new Persion("aaa",1);Persion persion2 = new Persion("aaa",2);Persion persion3 = new Persion("bbb",3);persons.add(persion3);persons.add(persion2);persons.add(persion);persons.stream().sorted(new Comparator<Persion>() {@Overridepublic int compare(Persion o1, Persion o2) {if(o1.getName().compareTo(o2.getName()) == 0){return o2.getAge() - o2.getAge();}else {return o1.getName().compareTo(o2.getName());}}});for(Persion p: persons){System.out.println(p);}


http://www.hkcw.cn/article/RkAhRXtvVT.shtml

相关文章

【深度学习新浪潮】多模态模型如何处理任意分辨率输入?

多模态模型处理任意分辨率输入的能力主要依赖于架构设计的灵活性和预处理技术的结合。以下是核心方法及技术细节: 一、图像模态的分辨率处理 1. 基于Transformer的可变补丁划分(ViT架构) 补丁化(Patch Embedding): 将图像分割为固定大小的补丁(如1616或3232像素),不…

CSS之动画(奔跑的熊、两面反转盒子、3D导航栏、旋转木马)

一、 2D转换 1.1 transform: translate( ) 转换&#xff08;transform&#xff09; 是CSS3中具有颠覆性的特征之一&#xff0c;可以实现元素的位移、旋转、缩放等效果 移动&#xff1a;translate 旋转&#xff1a;rotate 缩放&#xff1a;scale 下图为2D转换的坐标系 回忆…

使用 MCP 将代理连接到 Elasticsearch 并对索引进行查询

本文是之前文章 “将代理连接到 Elasticsearch 使用模型上下文协议” 的扩展。在这里&#xff0c;我们将以详细的步骤来一步一步地展示如何安装 MCP Server 及使用 MCP 服务器和我们的 Elasticsearch 中的数据来进行对话。 安装 Elasticsearch 及 Kibana 如果你还没有安装好你…

PMI Suite V5.9.125 (Byos and Byosphere)2025年5月15日版本PMI Suite V5.9

1、完整质量分析 Intact Mass™工作流程提供自动MS/MS光谱注释、MS级反卷积和鉴定&#xff0c;与传统的自下而上方法相比&#xff0c;减少了数据分析所需的时间。 2、肽水平分析 鉴定复杂样品中的蛋白质和修饰肽。大幅缩短以肽为中心的工作流程的分析时间 3、色谱图分析 将…

MDP的curriculums部分

文章目录 1. isaaclab中的curriculums1.1 modify_reward_weight1.1.1 函数功能1.1.2 参数详解1.1.3 函数逻辑1.1.4 如何使用 2. isaaclab_task中的curriculums2.1 terrain_levels_vel2.1 功能概述2.2 函数参数2.3 函数逻辑 3. robot_lab中的curriculums3.1 command_levels_vel …

【AUTOSAR OS】事件机制解析:定义、实现与应用

文章目录 一、Event的定义与作用二、核心数据结构三、重要函数实现与原理1. **事件初始化 Os_InitEvent()**2. **设置事件 SetEvent()/Os_SetEvent()**3. **等待事件 WaitEvent()/Os_WaitEvent()**4. **清除事件 ClearEvent()**5. **获取事件状态 GetEvent()** 四、应用示例&am…

单元测试-断言常见注解

目录 1.断言 2.常见注解 3.依赖范围 1.断言 断言练习 package com.gdcp;import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test;//测试类 public class UserServiceTest {Testpublic void testGetGender(){UserService userService new UserService…

5.3.1_1二叉树的先中后序遍历

知识总览&#xff1a; 什么是遍历&#xff1a; 按照某种次序把所有节点都访问一遍 二叉树的遍历-分支节点逐层展开法(会这个就行)&#xff1a; 先序(根)遍历&#xff1a;根左右 中序(根)遍历&#xff1a;左根右 后序(根)遍历&#xff1a;左右根 分支节点逐层展开法&am…

SpringMVC的注解

1. SpringMVC:Spring Web MVC 2. RequestMapping 既是类注解&#xff0c;又是方法注解 3. 访问的URL路径&#xff1a;类路径方法路径 4.后端开发人员测试接口&#xff0c;通常使用postman或其他类似工具来发起请求 对于后端而言&#xff0c;使用postman或form表单&#xff0…

ipfs下载和安装(windows)

关于ipfs介绍&#xff0c;网上一大堆&#xff0c;这里就不讲了。 zip安装包下载衔接&#xff1a;https://github.com/ipfs/kubo/releases/download/v0.35.0/kubo_v0.35.0_windows-amd64.zip 下载之后解压&#xff0c;将文件放到一个合适的目录。 配置系统环境变量&#xff08…

World of Warcraft Hunter [Grandel] [Ancient Petrified Leaf]

World of Warcraft Hunter [Grandel] [Ancient Petrified Leaf] 猎人史诗弓任务 [远古石叶][罗克迪洛尔&#xff0c;上古守护者的手杖][伦鲁迪洛尔&#xff0c;上古守护者的长弓] 最伟大的猎手 Grandel&#xff0c;很多年前的图片。史诗弓流程。

【LeetCode 题解】两数之和(C++/Python 双解法):从语法到算法的全面解析

【LeetCode题解】两数之和&#xff08;C/Python双解法&#xff09;&#xff1a;从语法到算法的全面解析 一、题目描述 题目链接&#xff1a;1. 两数之和 难度&#xff1a;简单 要求&#xff1a;给定一个整数数组 nums 和一个整数目标值 target&#xff0c;在数组中找出两个数…

《AI Agent项目开发实战》DeepSeek R1模型蒸馏入门实战

一、模型蒸馏环境部署 注&#xff1a;本次实验仍然采用Ubuntu操作系统&#xff0c;基本配置如下&#xff1a; 需要注意的是&#xff0c;本次公开课以Qwen 1.5-instruct模型为例进行蒸馏&#xff0c;从而能省略冷启动SFT过程&#xff0c;并且 由于Qwen系列模型本身性能较强&…

17.进程间通信(三)

一、System V 消息队列基本结构与理解 消息队列是全双工通信&#xff0c;可以同时收发消息。 结论1&#xff1a;消息队列提供了一种&#xff0c;一个进程给另一个进程发送有类型数据块的方式&#xff01; 结论2&#xff1a;OS中消息队列可能有多个&#xff0c;要对消息队列进行…

【汽车电子入门】一文了解LIN总线

前言&#xff1a;LIN&#xff08;Local Interconnect Network&#xff09;总线&#xff0c;也就是局域互联网的意思&#xff0c;它的出现晚于CAN总线&#xff0c;于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发&#xff0c;其目的是提供一…

BayesFlow:基于神经网络的摊销贝叶斯推断框架

贝叶斯推断为不确定性条件下的推理、复杂系统建模以及基于观测数据的预测提供了严谨且功能强大的理论框架。尽管贝叶斯建模在理论上具有优雅性&#xff0c;但在实际应用中经常面临显著的计算挑战&#xff1a;后验分布通常缺乏解析解&#xff0c;模型验证和比较需要进行重复的推…

高压电绝缘子破损目标检测数据集简介与应用

在电力系统中&#xff0c;高压电绝缘子起着关键的绝缘与机械支撑作用。一旦发生破损&#xff0c;不仅影响输电线路的安全运行&#xff0c;还可能引发电力事故。因此&#xff0c;利用目标检测技术对高压绝缘子的破损情况进行智能识别&#xff0c;已成为当前电力巡检中的重要研究…

深度学习与神经网络 前馈神经网络

1.神经网络特征 无需人去告知神经网络具体的特征是什么&#xff0c;神经网络可以自主学习 2.激活函数性质 &#xff08;1&#xff09;连续并可导&#xff08;允许少数点不可导&#xff09;的非线性函数 &#xff08;2&#xff09;单调递增 &#xff08;3&#xff09;函数本…

paoxiaomo的XCPC算法竞赛训练经验

楼主作为一个普通二本的ICPC选手&#xff0c;在0基础的情况下凭借自学&#xff0c;获得过南昌邀请赛金牌&#xff0c;杭州区域赛银牌&#xff0c;一路上经历过不少的跌宕起伏&#xff0c;如今将曾经摸索出来的学习路线分享给大家 一&#xff0c;语言基础 学习C语言基础语法&a…