哈希表
baj001
这个作者很懒,什么都没留下…
展开
-
LeetCode 两数之和
使用HashMap的方式 注意containkey 的作用是,判断是否有 key为 target - nums[i] 的一项 如果有的话,则直接返回 其值(res.get(target - nums[i]))和 当下的 i 若没有 则将这个值作为key,当前的下标作为value,存入res中 class Solution { public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> res..原创 2022-03-13 15:23:46 · 160 阅读 · 0 评论 -
leetcode 347 前 K 个高频元素
思路 原题链接 首先统计数组中各元素出现的次数 在统计出现次数的时候,使用HashMap ,搭配增强for循环,当map中包含当前的键的时候,将其值+1,map.put(num, map.get(num) + 1); 反之,将其值赋值为1 map.put(num, 1); 定义一个最大出现次数maxTimes,使用for循环,统计最大出现次数 使用Map.Entry是为了更方便的输出map键值对,当检测到有值 (即次数) 大于maxTimes的时候,将 entry.getValue() 赋给maxTim原创 2022-01-29 15:35:22 · 279 阅读 · 0 评论 -
leetcode 242 有效的字母异位词
思路 两个字符串中 每个字符出现的次数都相同,则称两个字符为字母异位词 首先判断两个字符串长度是否相等,不相等则直接返回 false 若相等,则初始化 26 个字母哈希表,遍历字符串 s 和 t,s 负责在对应位置增加,t 负责在对应位置减少 如果哈希表的值都为 0,则二者是字母异位词 关键:在执行第一次统计相应位置的for循环中,需要使得i 满足 小于字符串的长度;而在统计每个位置是否全是0的for循环中,要使得 i 小于26,因为此时要统计26个位置的情况 class Solution {原创 2022-01-16 21:20:16 · 493 阅读 · 0 评论 -
leetcode 349 两个数组的交集
思路 本题求解两个数组的的交集 即相同部分 首先判断两个数组是否是null或者长度为0,若是则直接 return new int[0] 设定两个hashset set1与reset 使用增强for循环将nums1中的值赋值给i,使用set1来保存,使用增强for来判断set1中是否包含nums2中的值,若包含则在reset中加入 定义一个长度为reset.size()的数组resArr,在其中加入reset的值,最后返回这个数组 class Solution { public int[] int原创 2022-01-17 10:19:48 · 154 阅读 · 0 评论 -
leetcode 202 快乐数
思路 1.首先new一个HashSet 当record中不包含当前元素的时候,将这个元素加入,然后重新计算n的值 最后返回n是否为1即可 class Solution { public boolean isHappy(int n) { Set<Integer> record = new HashSet<>(); while(n != 1 && !record.contains(n)){ record原创 2022-01-17 11:20:13 · 193 阅读 · 0 评论 -
leetcode 383 赎金信
思路 将magazine中的元素加入到temp数组中,统计杂志字符串出现的次数 判断ransomNote在temp数组中的值是否是大于0的,若是的话则执行arr[temp]–,因为每个字符只能使用一次;反之,说明ransomNote中的字母没有出现在magazine中过,则返回false class Solution { public boolean canConstruct(String ransomNote, String magazine) { int[] arr = ne原创 2022-01-18 11:46:10 · 719 阅读 · 0 评论 -
leetcode 454四数相加II
思路 首先定义一个hashmap 用来储存结果 一共有四个数组,分为两组。先遍历计算前两组的两数之和temp,当map中出现了重复的temp的时候,将对应value+1,反之则执行将键为temp的值赋值为1 之后计算另外的两组遍历计算两数之和,当在map中出现了,此时两数之和的相反数的时候,即说明此时的两数之和,与之前的计算和可以满足相加为0的条件这时,将res进行 res += map.get(0-temp) class Solution { public int fourSumCount(i原创 2022-01-18 10:47:34 · 226 阅读 · 0 评论