目录
哈希表
主要利用hashmap的键值对特点,进行数据的处理。
个人总结的一段常用代码:
map中某个键对应的值需要改变+1的时候,先取出该键对应的值,再把该值加1之后重新放入map中。
if(map.containsKey(key1)){
int tempcount = map.get(keys)+1;
map.put(key1,tempcount);
}
题目一:变位词组
(题目链接:https://leetcode-cn.com/problems/group-anagrams-lcci)
编写一种方法,对字符串数组进行排序,将所有变位词组合在一起。变位词是指字母相同,但排列不同的字符串。
注意:本题相对原题稍作修改
示例:
输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
输出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
说明:
所有输入均为小写字母。
不考虑答案输出的顺序。
方法:使用hashmap存储结构进行数据的存储,其中key存的字符串包含字母相同并且也顺序相同的,value存储的包含字母相同但是也顺序不同的
Java源代码
import java.util.*;
public class hashword {
public static void main(String[] args) {
String[] strs = new String[]{"eat", "tea", "tan", "ate", "nat", "bat"};
List<List<String>> strs2 = new ArrayList<List<String>>();
Map<String, List<String>> map = new HashMap<String, List<String>>();
for (int i = 0; i <strs.length ; i++) {
char[] arr = strs[i].toCharArray();
Arrays.sort(arr);
String arrstr = new String(arr);
if(!map.containsKey(arrstr)){
List<String> templiststring = new ArrayList<>();
templiststring.add(strs[i]);
map.put(arrstr,templiststring);
}
else{
map.get(arrstr).add(strs[i]);
}
}
for(String key :map.keySet()){
strs2.add(map.get(key));
}
System.out.println("value: "+strs2);
}
}
最重要的步骤:
记得对要处理的字符串转换为字符数组,然后对字符数组进行排序。
【注意】:思路总结:新的哈希结构HashMap<String, List<String>>();注意,这是我之前没有的思维,即map中key和value传统是一一对应的,
但是我们把value的数据结构形式定位list<String>,这样实质上实现了一对多的存储,此种哈希思维注意总结
【注意】:语法总结:把字符数组变为字符串,我们使用String arrstr = new String(arr);
把字符串变成字符数组,我们使用char[] arr = str.toCharArray();
【注意】:语法总结:Arrays.sort(arr)可以实现数组的自动排序
题目二:两数之和
(题目链接:https://leetcode-cn.com/problems/two-sum)
给定一个整数数组 nums 和一个整数目标值 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]
方法一:直接for循环,比较简单,我们不在展

本文总结了使用哈希表解决LeetCode中的经典问题,包括变位词组、两数之和、数对和等。通过哈希表的键值对特性,高效地处理数据。文中提供了Java源代码示例,展示了如何利用哈希表解决这些问题。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



