您的位置:首页 > 其它

leetcode之求数组中俩个值和等于给定值用unordered_map降低时间复杂度

2016-09-12 14:38 344 查看
这题直接撸了一发O(n^2)时间复杂度,后来想一想,多有不妥,遂看讨论,可以用STL,改成O(n)时间复杂度,

O(n^2)很简单,不贴了,

贴个O(n)的:

class Solution {
public:
vector<int> twoSum(vector<int> &numbers, int target) {
unordered_map<int,int> map;
vector<int> result(2);
for(int i=0;i<numbers.size();i++){
int value=target-numbers[i];
if(map.find(value)!=map.end()){
result[0]=map[value];
result[1]=i+1;
break;
}
map[numbers[i]]=i+1;
}
return result;
}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐