首页 > 其他 > 详细

(leetcode)3sum

时间:2015-09-06 12:23:44      阅读:261      评论:0      收藏:0      [点我收藏+]
 1 class Solution {
 2 public:
 3     vector<vector<int>> threeSum(vector<int>& nums) { 
 4         if (nums.size() < 3)
 5             return {};
 6 
 7         sort(nums.begin(),nums.end());
 8         vector<vector<int>> ans;
 9         
10         for(int i = 0;i < nums.size()-2 ;++i)
11         {
12             int j = i+1;
13             int k = nums.size() - 1;
14              if(i>0 && nums[i] == nums[i-1]) continue;
15             while(j < k)
16             {
17                 if(nums[j] + nums[k] == 0 - nums[i])
18                 {
19                     vector<int> triplet;
20                     triplet.push_back(nums[i]);
21                     triplet.push_back(nums[j]);
22                     triplet.push_back(nums[k]);
23                     ans.push_back(triplet);
24                     while(j<k && nums[j] == nums[++j]);
25                 }
26                 else if(nums[j] + nums[k] < 0 - nums[i])
27                     while(j < k && nums[j] == nums[++j]);
28                 else if(nums[j] + nums[k] > 0 - nums[i])
29                     while(j < k && nums[k] == nums[--k]);
30             }
31         }
32         return ans;
33     }
34     
35 };

 

(leetcode)3sum

原文:http://www.cnblogs.com/chdxiaoming/p/4784983.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!