Java版本
class Solution {
public int[] twoSum(int[] nums, int target) {
HashMap<Integer,Integer>m =new HashMap<Integer, Integer>();
int[] res=new int[2];
for(int i=0;i<nums.length;++i){
m.put(nums[i],i);
}
for(int i=0;i<nums.length;++i){
int t=target-nums[i];
if(m.containsKey(t)&&m.get(t)!=i){
res[0]=i;
res[1]=m.get(t);
break;
}
}
return res;
}
}
//先将所有数组里面的值和序号存到hashMap里面,然后调用for循环遍历,用target减去数组中的值之后再返回hashmap中获取序号,将结果保存在数组中!
C++版本
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int,int> m;
vector<int> res;
for (int i=0;i<nums.size();++i){
m[nums[i]]=i;
}
for (int i=0;i<nums.size();++i){
int t=target-nums[i];
if (m.count(t)&&m[t]!=i){
res.push_back(i);
res.push_back(m[t]);
break;
}
}
return res;
}
};
Leetcode 1: Two Sum
最新推荐文章于 2021-04-29 06:36:02 发布