Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 06ebd5f

Browse files
authored
Update 0454.四数相加II.md
原先是先判断map中是否有这个key,后面更新时再get(key),经过测试,直接使用getOrDefault()方法效率会更高一些,没有当前key时返回0,值为0就是没有当前key
1 parent 76fd68c commit 06ebd5f

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

‎problems/0454.四数相加II.md‎

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -97,26 +97,25 @@ Java:
9797
```Java
9898
class Solution {
9999
public int fourSumCount(int[] nums1, int[] nums2, int[] nums3, int[] nums4) {
100-
Map<Integer, Integer> map = new HashMap<>();
101-
int temp;
102100
int res = 0;
101+
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
103102
//统计两个数组中的元素之和,同时统计出现的次数,放入map
104103
for (int i : nums1) {
105104
for (int j : nums2) {
106-
temp = i + j;
107-
if (map.containsKey(temp)) {
108-
map.put(temp, map.get(temp) + 1);
105+
int tmp = map.getOrDefault(i + j, 0);
106+
if (tmp == 0) {
107+
map.put(i + j, 1);
109108
} else {
110-
map.put(temp, 1);
109+
map.replace(i + j, tmp + 1);
111110
}
112111
}
113112
}
114113
//统计剩余的两个元素的和,在map中找是否存在相加为0的情况,同时记录次数
115114
for (int i : nums3) {
116115
for (int j : nums4) {
117-
temp = i + j;
118-
if (map.containsKey(0 - temp)) {
119-
res += map.get(0 - temp);
116+
int tmp = map.getOrDefault(0 - i - j, 0);
117+
if (tmp != 0) {
118+
res += tmp;
120119
}
121120
}
122121
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /