leetcode_two sum()

来源:互联网 发布:软件评测师真题在线 编辑:程序博客网 时间:2024/06/01 10:20

最近觉得自己很渣,所以在这里立下flag,从今天开始每天刷一道leetcode上的题目,并且在这里进行代码整理,闲话少说,进入正题:

一、Two sum

题目要求:


我的答案:

    vector<int> twoSum(vector<int>& nums, int target) {    unordered_map<int, int> hash;vector<int> result;for (int i = 0; i < nums.size(); i++) {int numberToFind = target - nums[i];if (hash.find(numberToFind) != hash.end()) {result.push_back(hash[numberToFind]);result.push_back(i);return result;}hash[nums[i]] = i;}return result;    }
思路解析:

       这个题目还是参考了别人的答案的,因为自己没想到好的办法。具体思路就是用目标数据target减去数组nums中第i个数据得到值numbertofind,然后在hash中寻找numbertofind,若能找到,则把i与numbertofind的下表按大小顺序输出,程序结束,若找不到,则把第i个数据与其下标压入hash,然后遍历第i+1个数据,直到找多正确的组合或者遍历完所有的数据,程序退出。

       假如这里要求是三个不同的数据相加得到target,这种办法将不再适用。


原创粉丝点击