第一题两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
def twoSum(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
records={}
for idx,val in enumerate(nums):
if target-val not in records:
records[val]=idx
else:
return [records[target-val],idx]
四数之和
首先建立一个dict记录前两个数之和以及之和出现的次数,然后再计算后面两个数。
class Solution(object):
def fourSumCount(self, nums1, nums2, nums3, nums4):
"""
:type nums1: List[int]
:type nums2: List[int]
:type nums3: List[int]
:type nums4: List[int]
:rtype: int
"""
res={}
for i in nums1:
for j in nums2:
if i+j not in res:
res[i+j]=1
else:
res[i+j]+=1
count=0
for i in nums3:
for j in nums4:
if -(i+j) in res:
count+=res[-(i+j)]
else:
continue
return count