首页 > 编程语言 >代码随想录算法训练营第七天| 454. 四数相加 II 383. 赎金信

代码随想录算法训练营第七天| 454. 四数相加 II 383. 赎金信

时间:2024-03-12 13:59:45浏览次数:18  
标签:ransomNote map 四数 charAt int 随想录 sum 454 HashMap

454. 四数相加 II
https://leetcode.cn/problems/4sum-ii/description/、

public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
        int res = 0;
        HashMap<Integer,Integer> map = new HashMap<>();
        for (int i : nums1) {
            for (int i1 : nums2) {
                int sum = i + i1;
                map.put(sum,map.getOrDefault(sum,0) + 1);
            }
        }
        for (int i : nums3) {
            for (int i1 : nums4) {
                int sum = i + i1;
                res += map.getOrDefault(-sum,0);
            }
        }
        return res;
    }

总结:四个数组的遍历可以划分为两组两个数组的遍历,这种在两组中去遍历一组寻找另一组的模式,就是hash。
383. 赎金信
https://leetcode.cn/problems/ransom-note/description/

HashMap<Character,Integer> map = new HashMap<>();
        for (int i = 0; i < magazine.length(); i++) {
            map.put(magazine.charAt(i),map.getOrDefault(magazine.charAt(i),0) + 1);
        }
        for (int i = 0; i < ransomNote.length(); i++) {
            if (map.containsKey(ransomNote.charAt(i)) && map.get(ransomNote.charAt(i)) != 0){
                map.put(ransomNote.charAt(i),map.get(ransomNote.charAt(i)) - 1);
            }else {
                return false;
            }
        }
        return true;

总结:map的key存字符,value存出现的次数,再去遍历。

标签:ransomNote,map,四数,charAt,int,随想录,sum,454,HashMap
From: https://www.cnblogs.com/jeasonGo/p/18068127

相关文章