美文网首页
3 sum closest

3 sum closest

作者: Hf1dw | 来源:发表于2018-03-19 18:27 被阅读0次

Question

Analysis

Answer

class Solution{
public:
  vector <vector <int>> threeSum (vector <int> & num)
  {
    vector <vector <int>> result;
    if (num.size()<3) return result;
    int ans=0;
    sort (num.begin(),num.end());
    for (int i=0;i<num.size()-2;++i)
    {
      if (i>0 && num[i]==num[i-1])
        continue;
      int j=i+1;
      int k=num.size()-1;
      while(j<k)
      {
        ans=num[i]+num[j]+num[k];
        if (ans==0)
        {
          result.push_back({num[i],num[j],num[k]});
          ++j;
          while (j<num.size() && num[j]==num[j-1])
            ++j;
          --k;
          while(k>=0 &&num[k]==num[k+1])
            --k;
         }
         else if (ans>0)
           --k;
         else
           ++j;
      }
    }
    return result;
  }
};

参考:https://www.kancloud.cn/kancloud/data-structure-and-algorithm-notes/72956

相关文章

网友评论

      本文标题:3 sum closest

      本文链接:https://www.haomeiwen.com/subject/zaipqftx.html