哈希表
Charlesjjc
这个作者很懒,什么都没留下…
展开
-
leetcode18.四数相加
https://leetcode-cn.com/problems/4sum/ 双指针解法 思路和三数相加相同,就是把三数相加的第一个start变为temp = nums[i] + nums[j],(j > i),然后i和j都要做去重处理,避免出现相同元素,去重方法跟三数相加相同,避免出现-1,-1,-1,3作为开头被略过的情况。 上代码: class Solution { public List<List<Integer>> fourSum(int[] num原创 2021-07-22 00:07:47 · 48 阅读 · 0 评论 -
leetcode15.三数之和
https://leetcode-cn.com/problems/3sum/ 固定i从排序后数组左边开始扫,用双指针收缩寻找两数之和。 class Solution { public List<List<Integer>> threeSum(int[] nums) { List<List<Integer>> res = new ArrayList<>(); Arrays.sort(nums);原创 2021-07-21 17:51:59 · 35 阅读 · 0 评论 -
leetcode383.赎金信
题目挺简单的 https://leetcode-cn.com/problems/ransom-note/ 哈希哈希哈希就完事了,但是我忘记这种只有小写字母的,完全不需要建哈希表,数组下标作为字母的key就可以了,难怪我的代码时间复杂度才超越了30%玩家,哦不,用户。 class Solution { public boolean canConstruct(String ransomNote, String magazine) { HashMap<Character,In原创 2021-07-20 00:39:00 · 46 阅读 · 0 评论 -
leetcode454.四数相加II
https://leetcode-cn.com/problems/4sum-ii/ 用Hashmap来存数据相加的值,先上我的思路进阶 1.四阶暴力扫描,哈哈哈哈哈肯定不可能 2.二阶扫,把数组a和数组b的值加起来存进map1,数组c和数组d的值加起来存进map2,然后遍历map1,判断map2中是否存在 (0-map1[i]),时间复杂度O(n^2),空间复杂度O(n^2),但是比较麻烦,3次二阶遍历。 3.先把数组a和数组b进行遍历,存进map里,在遍历数组c和数组d的时候,每次都判断一下(0-原创 2021-07-19 22:31:21 · 86 阅读 · 0 评论 -
leetcode1.两数之和
https://leetcode-cn.com/problems/two-sum/ class Solution { public int[] twoSum(int[] nums, int target) { HashMap<Integer,Integer> map = new HashMap<Integer,Integer>(); int temp,count=0; int[] res = new int[2];原创 2021-07-18 02:09:54 · 70 阅读 · 0 评论 -
leetcode202.快乐数
非常简单的哈希应用,储存sum,上链接: https://leetcode-cn.com/problems/happy-number/ class Solution { public boolean isHappy(int n) { Set<Integer> set = new HashSet<Integer>(); int sum = 0; int temp = 0; if(n == 1) return原创 2021-07-18 00:46:28 · 46 阅读 · 0 评论 -
leetcode349.两个数组的交集
哈希表继续练习,上链接 https://leetcode-cn.com/problems/intersection-of-two-arrays/ class Solution { public int[] intersection(int[] nums1, int[] nums2) { Set<Integer> set1 = new HashSet<Integer>(); Set<Integer> resSet = new H原创 2021-07-17 23:37:27 · 60 阅读 · 0 评论 -
leetcode242.有效的字母异位词
https://leetcode-cn.com/problems/valid-anagram/ 开始学习Hashmap了,开胃菜,都没用到hashmap,简单的一批。 class Solution { public boolean isAnagram(String s, String t) { int[] record = new int[26]; for(char c:s.toCharArray()){ record[c - 'a']原创 2021-07-17 22:07:40 · 61 阅读 · 0 评论