两数之和
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> map;
for(int i=0;i<nums.size();i++){
if(map.count(target-nums[i])!=0){
return vector<int>{i,map[target-nums[i]]};
}else{
map[nums[i]]=i;
}
}
return vector<int>{0,0};
}
};
四数相加II
class Solution {
public:
int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
unordered_map<int,int> map;
for(int a:nums1){
for(int b:nums2){
map[a+b]++;
}
}
int result=0;
for(int c:nums3){
for(int d:nums4){
if(map.count(0-(c+d))!=0){
result+=map[0-(c+d)];
}
}
}
return result;
}
};
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21