vector<int>& nums
vector<int>:一个存储整数的动态数组类型
&:表示nums是对一个vector<int>对象的引用
nums:引用的名称
Unorder_map
nums.size()
表示该数组的长度(有几个元素)
我的答案:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> ans;
for(int i=0;i<nums.size();i++){
int half=target-nums[i];
for(int j=nums.size()-1;j>i;j--){
if(nums[j]==half){
ans.push_back(i);
ans.push_back(j);
return ans;
}
}
}
return ans;
}
};
最佳答案:
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> map;
for (int i = 0; i < nums.size(); ++i) {
auto it = map.find(target - nums[i]);
if (it != map.end()) {
return {it->second, i};
}
map[nums[i]] = i;
}
return {};
}
};
代码逻辑:通过哈希表,存放数值及对应的索引值;遍历数组,如果找到一个值等于目标差值,就返回当前值的索引(i)和目标差值的索引(it)