Leetcode Day 1
Leetcode Day 1
1. 两数之和
// kreamyu
class Solution {
public:
map<int,vector<int>> mp;
vector<int> twoSum(vector<int>& nums, int target) {
for(int i=0;i<nums.size();i++)
{
mp[nums[i]].push_back(i);
}
for(int i=0;i<nums.size();i++)
{
for(int j=0;j<mp[target-nums[i]].size();j++)
{
if(mp[target-nums[i]][j]!=i)
{
return {i,mp[target-nums[i]][j]};
}
}
}
return {0,0};
}
};
一道典型的hash题目,官方题解的答案比我的好不少
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> hashtable;
for (int i = 0; i < nums.size(); ++i) {
auto it = hashtable.find(target - nums[i]);
if (it != hashtable.end()) {
return {it->second, i};
}
hashtable[nums[i]] = i;
}
return {};
}
};
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/two-sum/solution/liang-shu-zhi-he-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
y总的写法与官方题解几乎相同
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target)
{
vector<int> res;
unordered_map<int,int> hash;
for (int i = 0; i < nums.size(); i ++ )
{
int another = target - nums[i];
if (hash.count(another))
{
res = vector<int>({hash[another], i});
break;
}
hash[nums[i]] = i;
}
return res;
}
};
作者:yxc
链接:https://www.acwing.com/solution/content/47/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
浙公网安备 33010602011771号