zoukankan      html  css  js  c++  java
  • LeetCode_3Sum

     1 class Solution {
     2 public:
     3     vector<vector<int> > threeSum(vector<int> &num) {
     4         // Start typing your C/C++ solution below
     5         // DO NOT write int main() function
     6         vector<vector<int> > output; 
     7         if(num.size()<3) return output; 
     8          
     9         sort(num.begin(), num.end());
    10         
    11         for(int i =0; i< num.size() -2 ;){
    12             int startS = i + 1 ;
    13             int endS = num.size() - 1 ;
    14             while(startS < endS){
    15              
    16              int sum = num[i] + num[startS] + num[endS];
    17              if(sum == 0) {
    18                     vector<int> triplet;  
    19                     triplet.push_back(num[i]);  
    20                     triplet.push_back(num[startS]);  
    21                     triplet.push_back(num[endS]);  
    22                     output.push_back(triplet);  
    23                     startS++ ;
    24                     while(num[startS] == num[startS-1] && startS < endS) startS++;
    25              }
    26              if(sum < 0)
    27                    startS ++;
    28              else
    29                     endS --;    
    30             }   
    31             i++;
    32             while(num[i] == num[i-1] && i< num.size() -2) i ++;     
    33         }        
    34         return output;
    35     }
    36 };

    和3Sum closest 类似,注意删除重复的三元组就行

    --------------------------------------------------------------------天道酬勤!
  • 相关阅读:
    二阶段任务分配
    二阶段12.2
    针对提出的意见的改进
    一阶段spring(小呆呆)团队评分
    搜狗输入法使用感受
    省呱呱典型用户和用户场景
    省呱呱意见评论
    11/21
    11/20小组计划
    11/19小组计划
  • 原文地址:https://www.cnblogs.com/graph/p/3006543.html
Copyright © 2011-2022 走看看