hot100-哈希

1. 两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]
示例 2:输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:输入:nums = [3,3], target = 6
输出:[0,1]

提示:

2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案

class Solution {public int[] twoSum(int[] nums, int target) {//暴力// int[] arr=new int[2];// for(int i=0;i<nums.length;i++){//     int t=target-nums[i];//     for(int j=i+1;j<nums.length;j++){//         if(t==nums[j]){//             arr[0]=i;//             arr[1]=j;//         }//     }// }// return arr;//哈希Map<Integer,Integer> map=new HashMap<Integer,Integer>();int[] arr=new int[2];for(int i=0;i<nums.length;i++){if(map.containsKey(target-nums[i])){arr[0]=map.get(target-nums[i]);arr[1]=i;break;}map.put(nums[i],i);}return arr;// Map<Integer, Integer> hashtable = new HashMap<Integer, Integer>();// for (int i = 0; i < nums.length; ++i) {//     if (hashtable.containsKey(target - nums[i])) {//         return new int[]{hashtable.get(target - nums[i]), i};//     }//     hashtable.put(nums[i], i);// }// return new int[0];}
}

49. 字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
示例 2:输入: strs = [""]
输出: [[""]]
示例 3:输入: strs = ["a"]
输出: [["a"]]

提示:

1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i] 仅包含小写字母

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String ,List<String>> map=new HashMap<>();for(String s: strs){int[] count=new int[26];for(char c : s.toCharArray()){count[c-'a']++;}StringBuilder sb=new StringBuilder();for(int i=0;i<26;i++){if(count[i]>0){sb.append((char)(i+'a'));sb.append(count[i]);}}String key=sb.toString();if(!map.containsKey(key)){map.put(key,new ArrayList<>());}map.get(key).add(s);}return new ArrayList<>(map.values());}
}

思路:
找异位词可以转换为找各个单词出现的频次,如果频次相同,那么就是异位词
字符串转为char[],用到方法s.toCharArray();
map.values()返回的是一个list集合

128. 最长连续序列

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

示例 1:输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4
示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9

提示:

0 <= nums.length <= 105
-109 <= nums[i] <= 109

class Solution {public int longestConsecutive(int[] nums) {HashSet<Integer> set = new HashSet<>();for (int num : nums) {set.add(num);}int maxLength = 0;for (int num : set) {if (!set.contains(num - 1)) { // num is the starting point of a consecutive sequenceint currentNum = num;int currentLength = 1;while (set.contains(currentNum + 1)) { // continue to find the consecutive sequencecurrentNum++;currentLength++;}maxLength = Math.max(maxLength, currentLength);}}return maxLength;}
}

思路:
可以用hashset保存原来的数据,遍历hashset,找到第一个元素

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

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

相关文章

关于项目、项目集、项目组合以及运营管理之间的关系

什么是项目&#xff1f; 【项目】这个名词&#xff0c;其实各位一点都不陌生&#xff0c;各位从小到大在各种报章杂志&#xff0c;甚至是每晚的新闻播报里面&#xff0c;每每都会看到或是听到【项目】这个词语&#xff0c;甚至在各位进入大学&#xff0c;或是研究生的阶段里就…

AttributeError: type object ‘mmap.mmap‘ has no attribute ‘ACCESS_READ

在使用mmap时&#xff0c;运行项目&#xff0c;出现了报错&#xff1a;AttributeError: type object ‘mmap.mmap’ has no attribute ACCESS_READ 源代码是这样的&#xff1a; with mmap(f.fileno(), lengthfile_size, accessmmap.ACCESS_READ) as data 此时我的头文件引用是…

基于人脸5个关键点的人脸对齐(人脸纠正)

摘要&#xff1a;人脸检测模型输出人脸目标框坐标和5个人脸关键点&#xff0c;在进行人脸比对前&#xff0c;需要对检测得到的人脸框进行对齐&#xff08;纠正&#xff09;&#xff0c;本文将通过5个人脸关键点信息对人脸就行对齐&#xff08;纠正&#xff09;。 一、输入图像…

RabbitMQ用户命令_策略_日志

RabbitMQ相关安装 Centos离线安装RabbitMQ并开启MQTT Docker安装rabbitMQ RabbitMQ集群搭建和测试总结_亲测 Docker安装RabbitMQ集群_亲测成功 RabbitMQ创建管理员命令 #查看当前用户命令&#xff1a; rabbitmqctl list_users#创建用户和密码 rabbitmqctl add_user admin…

Zookeeper(window)安装

1、规划 版本选定 :3.4.6 安装目录 : D:\\zookeeper-3.4.6 数据目录 : D:\\zookeeper-3.4.6\\zk_data 日志目录 :D:\\zookeeper-3.4.6\\log 2、下载

ORB-SLAM2实时稠密地图,解决运行报段错误(核心已转储)运行数据集时出现段错误,出现可视化界面后闪退(添加实时彩色点云地图+保存点云地图)

高翔的稠密建图仓库 1. git clone https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map.git 2. 去ORB SLAM2里拷贝Vocabulary到/home/cgm/ORBSLAM2_with_pointcloud_map/ORB_SLAM2_modified文件夹下 3. 删除一些build文件夹 删除ORB_SLAM2_modified/Thirdparty/DB…

哈希 -- 位图、布隆过滤器、海量数据处理

目录 一、位图1.1 经典题目1.2 位图概念1.3 位图的应用1.4 关于位图的三个经典问题 二、布隆过滤器2.1 布隆过滤器的提出2.2 布隆过滤器的概念2.3 布隆过滤器的插入2.4 布隆过滤器的查找2.5 布隆过滤器删除2.6 代码实现2.7 布隆过滤器的优点2.8 布隆过滤器的缺陷2.9 布隆过滤器…

TongWeb8下应用忙碌线程监控

问题 &#xff1a; 在系统运行过程中发现TongWeb进程占用CPU过高&#xff0c;需要分析是应用哪里引起的问题。 分析过程(仅限Linux环境)&#xff1a; 1. 通过top命令查看TongWeb的java进程占用的CPU情况。 查看误区&#xff1a;不要以为java进程CPU占到398%就是高&#xff0…

MySQL学习笔记12

MySQL 查询语句&#xff1a; 1、查询五子句&#xff1a;&#xff08;重点&#xff09; mysql> select */字段列表 from 数据表名称 where 子句 group by 子句 having 子句 order by 子句 limit 子句; 1&#xff09;where 子句&#xff1b;条件筛选。 2&#xff09;group…

golang 通过案列感受下内存分析

package main // 声音文件所在的包&#xff0c;每个go文件必须有归属的包 import ("fmt" )// 引入程序中需要用的包&#xff0c;为了使用包下的函数&#xff0c;比如&#xff1a;Printinfunc exchangeNum(num1 int, num2 int){var t intt num1num1 num2num2 t }…

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?

Elasticsearch 从 7.3 版本开始支持向量搜索。从 8.0 开始支持带有 HNSW 的 ANN 向量搜索。目前 Elasticsearch 已经是全球下载量最多的向量数据库。它允许使用密集向量和向量比较来搜索文档。 矢量搜索在人工智能和机器学习领域有许多重要的应用。 有效存储和检索向量的数据库…

Cortex-M3/M4之SVC和PendSV异常

一、SVC异常 SVC(系统服务调用&#xff0c;亦简称系统调用)用于产生系统函数的调用请求。例如&#xff0c;操作系统不让用户程序直接访问硬件&#xff0c;而是通过提供一些系统服务函数&#xff0c;用户程序使用 SVC 发出对系统服务函数的呼叫请求&#xff0c;以这种方法调用它…

多台服务器sessionId共享

目录 多台服务器sessionId共享解决方案&#xff1a;ASP.NET Core 参考代码(NET 7):登录处理登录&#xff08;请求&#xff09;过滤器过滤器使用BaseController 多台服务器sessionId共享 session id是服务器首次与浏览器创建连接时&#xff0c;生成的id值&#xff0c;存入浏览器…

2023华为杯数学建模D题第三问-碳排放路径优化(能源消费结构调整的多目标优化模型构建详细过程+模型假设(可复制))

1.碳排放约束下&#xff08;人为干预按时碳达峰与碳中和的基准情景&#xff09;能源消费结构多目标优化模型构建 1.1基本假设 本文的模型设计主要基于以下几个基本假设&#xff1a; &#xff08;1&#xff09;能源消费结构调整的根本驱动要素&#xff0c;是对投资耗费的最小化…

威胁的数量、复杂程度和扩散程度不断上升

Integrity360 宣布了针对所面临的网络安全威胁、数量以及事件响应挑战的独立研究结果。 数据盗窃、网络钓鱼、勒索软件和 APT 是最令人担忧的问题 这项调查于 2023 年 8 月 9 日至 14 日期间对 205 名 IT 安全决策者进行了调查&#xff0c;强调了他们的主要网络安全威胁和担忧…

i2c-tools:让硬件通信更简单

简介&#xff1a;IC&#xff08;Inter-Integrated Circuit&#xff09;&#xff0c;IC 是一种常用的硬件通信协议&#xff0c;用于连接各种内部设备&#xff0c;比如传感器、显示器或其他控制器。SMBus&#xff08;System Management Bus&#xff09;是 IC 的一个变种&#xff…

Java流式编程的使用

流式编程的使用步骤 使用流式编程的步骤就是: 设置数据源, 设置数据处理的方式,设置收集结果的方式。 使用filter方法实现过滤条件 例子为下&#xff08;查询年龄大于18的用户&#xff09;: Testpublic void streamTest1() {List<Student> students Arrays.asList(ne…

《JVM》第二篇 JVM内存模型深度剖析与优化

目录 一. JDK体系结构与跨平台特性介绍二. JVM内存模型深度剖析三. 从Jvisualvm来研究下对象内存流转模型四. GC Root与STW机制五. JVM参数设置通用模型 一. JDK体系结构与跨平台特性介绍 二. JVM内存模型深度剖析 按照线程是否共享来划分 TLAB(Thread Local Allocation Buffe…

改写软件-怎么选择改写软件

什么是改写软件&#xff1f;改写软件是基于自然语言处理技术的工具&#xff0c;它们可以分析一段文字&#xff0c;并将其重新表达&#xff0c;以保持原始意义&#xff0c;但使用不同的词汇和结构。这种技术可用于减少内容的重复&#xff0c;增加多样性&#xff0c;或者简化复杂…

Python量化交易学习笔记(0)

本文将简单回顾我的量化交易学习的历程&#xff0c;并给出新手学习量化交易的建议学习路线&#xff0c;适合于尚无稳定盈利策略的量化新手阅读&#xff0c;量化大神们请略过。 本文将在博客中置顶&#xff0c;并不定期根据我的学习、交易进行更新。 回顾学习历程 2020年初接…