3 Sum问题

来源:互联网 发布:大数据图标 编辑:程序博客网 时间:2024/06/06 13:15

3 Sum 问题

题目链接:lintcode 3 sum (http://www.lintcode.com/en/problem/3sum/)

基本思路

一会写

代码块

具体实现如下:

class Solution {public:        /**     * @param numbers : Give an array numbers of n integer     * @return : Find all unique triplets in the array which gives the sum of zero.     */    vector<vector<int> > threeSum(vector<int> &nums)     {        // write your code here        int i,j,l,r;        vector<vector<int>> res;        map<int,int> hash;        if(nums.size()<3)            return res;        sort(nums.begin(),nums.end());        for(i=0;i<nums.size()-1;i++)        {            if(i>0 && nums[i]==nums[i-1])                continue;            l=i+1;            r=nums.size()-1;            while(l<r)            {                int ans=nums[i]+nums[l]+nums[r];                if(ans==0)                {                    res.push_back({nums[i],nums[l],nums[r]});                    l++;                    r--;                    while(l<r && nums[l]==nums[l-1])                        l++;                    while(r>l && nums[r]==nums[r+1])                        r--;                }else if(ans>0)                    r--;                else                     l++;            }        }        return res;    }};
0 0
原创粉丝点击