![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
哈希表
kkkkuuga
这个作者很懒,什么都没留下…
展开
-
leetcode347. 前 K 个高频元素
1.题目描述:给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。2.使用hashmap统计频次,再对value值进行排序(treeset只能对key排序),采用逆序取前k个值(需要完全遍历entryset排序),相当于大顶堆,时间复杂度O(nlogn)。class Solution { public int[] topKFrequent(int[] nums, int k) { Map<Integer, Inte原创 2022-05-21 14:59:08 · 242 阅读 · 0 评论 -
leetcode454. 四数相加 II
1.题目描述:给你四个整数数组nums1、nums2、nums3和nums4,数组长度都是n,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < n;nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0。2.使用hashmap:nums1和nums2一组双层for循环遍历将和存入hashmap中,nums3和nums4一组双层for循环遍历,这种算法中包含重复项,也可以三一分组。class So原创 2022-05-10 14:50:22 · 169 阅读 · 0 评论 -
leetcode1. 两数之和
1.题目描述:给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。2.暴力解法:class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length; i++)原创 2022-05-10 12:00:09 · 162 阅读 · 0 评论 -
leetcode202. 快乐数
1.题目描述:编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到1。如果这个过程结果为1,那么这个数就是快乐数。如果n是快乐数就返回true;不是,则返回false。2.使用hashset:若非快乐数则必有重复数字出现,使用hashset记录即可,取每个位置的数字方法需要注意。class Solution { public boolean isHa原创 2022-05-09 21:41:28 · 288 阅读 · 0 评论 -
leetcode350. 两个数组的交集 II
1.题目描述:给你两个整数数组nums1和nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。2.使用hashmap:class Solution { public int[] intersect(int[] nums1, int[] nums2) { Map<Integer, Integer> map = new HashMap.原创 2022-05-09 21:16:36 · 361 阅读 · 0 评论 -
leetcode349. 两个数组的交集
1.题目描述:给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。2.使用hashset:class Solution { public int[] intersection(int[] nums1, int[] nums2) { Set<Integer> set1 = new HashSet<>(); Set<Integer> set2 = ne原创 2022-05-08 17:39:37 · 285 阅读 · 0 评论 -
leetcode438. 找到字符串中所有字母异位词
1.题目描述:给定两个字符串s和p,找到s中所有p的异位词的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串(包括相同的字符串)。2. 基于leetcode242. 有效的字母异位词的暴力解法:class Solution { public List<Integer> findAnagrams(String s, String p) { if (s.length() < p.length()) retur原创 2022-05-08 17:04:26 · 412 阅读 · 0 评论 -
leetcode49. 字母异位词分组
1.题目描述:给你一个字符串数组,请你将字母异位词组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。2.字符串排序后作为哈希表的key值:class Solution { public List<List<String>> groupAnagrams(String[] strs) { Map<String, List> map = new HashMa原创 2022-05-07 22:10:58 · 303 阅读 · 0 评论 -
leetcode383. 赎金信
1.题目描述:给你两个字符串:ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。如果可以,返回true;否则返回false。magazine中的每个字符只能在ransomNote中使用一次。2.使用数组代替哈希表的功能:与leetcode242. 有效的字母异位词基本一样。class Solution { public boolean canConstruct(String ransomNote, String maga原创 2022-05-06 22:39:44 · 240 阅读 · 0 评论 -
leetcode242. 有效的字母异位词
1.题目描述:给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。注意:若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。2.使用哈希表:class Solution { public boolean isAnagram(String s, String t) { if (s.length() != t.length()) return false; Map<String, Integer> maps = hel.原创 2022-05-06 22:23:34 · 370 阅读 · 0 评论