mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
Update 0454.四数相加II.md
This commit is contained in:
@ -125,11 +125,11 @@ class Solution {
|
|||||||
```
|
```
|
||||||
|
|
||||||
Python:
|
Python:
|
||||||
|
(版本一) 使用字典
|
||||||
```python
|
```python
|
||||||
class Solution(object):
|
class Solution(object):
|
||||||
def fourSumCount(self, nums1, nums2, nums3, nums4):
|
def fourSumCount(self, nums1, nums2, nums3, nums4):
|
||||||
# use a dict to store the elements in nums1 and nums2 and their sum
|
# 使用字典存储nums1和nums2中的元素及其和
|
||||||
hashmap = dict()
|
hashmap = dict()
|
||||||
for n1 in nums1:
|
for n1 in nums1:
|
||||||
for n2 in nums2:
|
for n2 in nums2:
|
||||||
@ -138,7 +138,7 @@ class Solution(object):
|
|||||||
else:
|
else:
|
||||||
hashmap[n1+n2] = 1
|
hashmap[n1+n2] = 1
|
||||||
|
|
||||||
# if the -(a+b) exists in nums3 and nums4, we shall add the count
|
# 如果 -(n1+n2) 存在于nums3和nums4, 存入结果
|
||||||
count = 0
|
count = 0
|
||||||
for n3 in nums3:
|
for n3 in nums3:
|
||||||
for n4 in nums4:
|
for n4 in nums4:
|
||||||
@ -149,20 +149,18 @@ class Solution(object):
|
|||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
|
(版本二)使用 defaultdict
|
||||||
```python
|
```python
|
||||||
|
from collections import defaultdict
|
||||||
class Solution:
|
class Solution:
|
||||||
def fourSumCount(self, nums1: list, nums2: list, nums3: list, nums4: list) -> int:
|
def fourSumCount(self, nums1: list, nums2: list, nums3: list, nums4: list) -> int:
|
||||||
from collections import defaultdict # You may use normal dict instead.
|
|
||||||
rec, cnt = defaultdict(lambda : 0), 0
|
rec, cnt = defaultdict(lambda : 0), 0
|
||||||
# To store the summary of all the possible combinations of nums1 & nums2, together with their frequencies.
|
|
||||||
for i in nums1:
|
for i in nums1:
|
||||||
for j in nums2:
|
for j in nums2:
|
||||||
rec[i+j] += 1
|
rec[i+j] += 1
|
||||||
# To add up the frequencies if the corresponding value occurs in the dictionary
|
|
||||||
for i in nums3:
|
for i in nums3:
|
||||||
for j in nums4:
|
for j in nums4:
|
||||||
cnt += rec.get(-(i+j), 0) # No matched key, return 0.
|
cnt += rec.get(-(i+j), 0)
|
||||||
return cnt
|
return cnt
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user