Leetcode 454 四数相加II(哈希表 + getOrDefault方法用于获取Map中指定键的值,如果键不存在,则返回一个默认值)

编程入门 行业动态 更新时间:2024-10-18 01:28:55

Leetcode 454 四数相加II(哈希表 + getOrDefault方法用于获取Map中指定键的值,如果键<a href=https://www.elefans.com/category/jswz/34/1770716.html style=不存在,则返回一个默认值)"/>

Leetcode 454 四数相加II(哈希表 + getOrDefault方法用于获取Map中指定键的值,如果键不存在,则返回一个默认值)

Leetcode 454 四数相加II(哈希表)

    • 解法1 HashMap + getOrDefault方法

解法1 HashMap + getOrDefault方法

【HashMap】
【⭐️HashMap常用操作】

创建HashMap:HashMap<Integer, Integer> hash = new HashMap<>();
向HashMap添加元素:put(key, value)
根据key取value:get(key)
判断哈希表中有无key:containsKey(key)
判断哈希表中有无value:containsValue(value)
移除哈希表中的键值对:remove(key)
返回键值对数量:size()
⭐️key是要获取值的键,defaultValue是键不存在时返回的默认值:getOrDefault(key, defaultValue)

【for循环遍历数组】_增强型for循环
for(int num1:nums1){}

【思路】
遍历nums1和nums2 将求和以及数量分别作为key和value存入hashmap
遍历nums3和nums4 如果0-(nums3+nums4) 在hashmap中,则count取出来备用 ,满足就count不断累加

时间复杂度O(N)
空间复杂度O(N)

import java.util.HashMap;
class Solution {public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {HashMap<Integer, Integer> hashmap = new HashMap<>();int i = 0;int count = 0;// 遍历nums1和nums2 将求和以及数量作为key和value存入hashmapfor(int num1:nums1){for(int num2:nums2){// getOrDefault 用于获取Map中指定键的值,如果键不存在,则返回一个默认值hashmap.put(num1+num2, hashmap.getOrDefault(num1+num2, 0)+1);}}// 遍历nums3和nums4 如果0-(nums3+nums4) 在hashmap中,则count取出来备用 // 满足就count不断累加for(int num3:nums3){for(int num4:nums4){if(hashmap.containsKey(0-(num3+num4))){count += hashmap.get(0-(num3+num4));} }}return count;}
}  

更多推荐

Leetcode 454 四数相加II(哈希表 + getOrDefault方法用于获取Map中指定键的值,如果键不存在,则返回一个默认值)

本文发布于:2023-12-05 02:12:26,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1662747.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不存在   默认值   方法   II   Leetcode

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!