leetcode Two Sum

来源:互联网 发布:海岛奇兵上尉升级数据 编辑:程序博客网 时间:2024/06/18 17:32

此题新建一个含有两个变量的结构体,

代码

typedef struct Node{    int id;    int val;}Node;bool compare(const Node &a, const Node &b){    return a.val < b.val;}class Solution {public:    vector<int> twoSum(vector<int> &numbers, int target) {                vector<int> res;        int size = numbers.size();           if(size==0)            return res;                    Node nodes[size];        for(int i = 0; i < size; ++i)        {            nodes[i].id = i+1;            nodes[i].val = numbers[i];                    }                    sort(nodes, nodes+size, compare);        int index1 = 0;        int index2 = size-1;                while(index1<index2)        {            int sum = nodes[index1].val+nodes[index2].val;            if(sum==target)                break;            if(sum>target)                index2--;            else                index1++;                    }                if(nodes[index1].id < nodes[index2].id)        {            res.push_back(nodes[index1].id);            res.push_back(nodes[index2].id);        }        else        {            res.push_back(nodes[index2].id);            res.push_back(nodes[index1].id);        }                return res;                    }};

0 0
原创粉丝点击