剑指offer-和为S的两个数组-两根指针

来源:互联网 发布:linux安装tomcat8 编辑:程序博客网 时间:2024/06/16 10:49

问题

题目:[和为S的两个数组]

思路

这个题目解法很多了,这个办法是最好的。我之前用哈希表也做过。不过他是用两根指针做了。

代码

class Solution {public:    vector<int> FindNumbersWithSum(vector<int> array,int sum) {        vector<int> ret;        int sz = array.size();        if(!sz) return ret;        int i = 0;        int j = sz - 1;        while(i != j){            int tmp = array[i] + array[j];            if(tmp == sum) break;            else if(tmp < sum) ++i;            else --j;        }        if(i==j) return ret;        ret.push_back( array[i] );        ret.push_back( array[j] );        return ret;    }};
0 0
原创粉丝点击