阅读背景:

【代码随想录算法训练营-第七天】【哈希表】454,383,15,18

来源:互联网 
454. 四数相加 II 第一遍 思路 想不出来,除了暴力解法,完全想不出来其他解法,看答案思路了… 学习了两个新的方法: getOrDefault:返回指定键对应的值,如果不存在,则返回默认值 containsKey:判断是否包含key class Solution { public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) { int count = 0; Map<Integer, Integer> map = new HashMap<>(); for (int i = 0; i < nums1.length; i++) { for (int j = 0; j < nums2.length; j++) { int sum = nums1[i] + nums2[j]; map.put(sum, map.getOrDefault(sum, 0) + 1); } } for (int k = 0; k < nums3.length; k++) { for (int l = 0; l < nums4.length; l++) { int judge_num = -(nums3[k] + nums4[l]); if (map.containsKey(judge_num)) { count += map.get(judge_num); } } } return count; } } 383. 赎金信 第一遍 思路 这题想出来了,用了15mins,思考+做题; 做完之后看了一下给的题解范例,使用了数组+字符的ascii码只有0-26; 巧妙的利用了字符串ascii码; 同时,因为利用了数组,数据结构更加简单,用时大幅减少; 454. 四数相加 II 第一遍 思路 想不出来,除了暴力解法,完全想不出来其他解法,看答案思路了



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: