网站开发中 敬请期待,注册公司流程2021,优惠券推广网站怎么做,做淘宝内部优惠券网站要钱么今天#xff0c;我们分享的题目是Leetcode454四数相加Ⅱ#xff0c;我们先来看题目#xff1a; 首先可以从题意中大体得知#xff0c;也是从某个集合中找有没有符合条件的元素。遇见这种类型的题目我们可以考虑用哈希表#xff0c;本题我们选取的是map集合#xff0c;因…今天我们分享的题目是Leetcode454四数相加Ⅱ我们先来看题目 首先可以从题意中大体得知也是从某个集合中找有没有符合条件的元素。遇见这种类型的题目我们可以考虑用哈希表本题我们选取的是map集合因为题目范围较大并且可以存在重复的。 解题思路我们首先开拓一个map集合然后遍历数组nums1和nums2数组并记录它们的所有元素的和记为ab并且存放到map集合中之后我们遍历nums3和num4数组并且记录num3数组和nums4数组中的和记为cd那么我们遍历maps集合寻找目标元素0-(cd),如果有则返回它的出现的次数。 我们结合代码进行具体的讲解
class Solution {public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {int i0;int j0;int res0;MapInteger,Integer mapsnew HashMap();for (i0;inums1.length;i){for (j0;jnums2.length;j){int sum0;sumnums1[i]nums2[j];//如果map集合中已经有了sumif (maps.containsKey(sum)){//将sum的value更新maps.put(sum,maps.get(sum)1);}else {//如果没有存放过将sum的value记为1maps.put(sum,1);}}}for (i0;inums3.length;i){for (j0;jnums4.length;j){//目标值int sum-(nums3[i]nums4[j]);//如果map中存在我们想要的目标值if (maps.containsKey(sum)){//将目标值所有的情况进行累加res maps.get(sum);}}}return res;}
}maps.put(sum,maps.get(sum)1)我们使用 get() 方法获取键为 “sum” 的值并将其存储在 sum 变量中。然后我们将 sum 的值加1并使用 put() 方法将新的值更新到 Map 中。 maps.get方法如果maps中存在我们想要的key返回1否则返回null。 这是这两个函数需要注意的地方。 那么今天的题目就讲解到这里结束了如果小伙伴们有什么疑问欢迎在博客下方进行留言博主看到会进行一一回复。(●’◡’●)