码迷,mamicode.com
首页 > 其他好文 > 详细

3Sum

时间:2015-12-07 12:23:16      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

 1 var threeSum = function(nums) {
 2     var res = [],
 3         i, l, r, sum;
 4 
 5     if (nums.length < 3) {
 6         return res;
 7     }
 8 
 9     nums = nums.sort(function(num1, num2) {
10         return num1 - num2;
11     });
12 
13     for (i = 0; i < nums.length - 2 && nums[i] <= 0; i++) {
14         //去重
15         if (nums[i] === nums[i - 1]) {
16             continue;
17         }
18         l = i + 1;
19         r = nums.length - 1;
20         while (l < r) {
21             sum = nums[i] + nums[l] + nums[r]
22             if (sum < 0) {
23                 l++;
24             } else if (sum > 0) {
25                 r--;
26             } else {
27                 //去重
28                 if ((l === i + 1) || (l > i + 1 && nums[l] !== nums[l - 1])) {
29                     res[res.length] = [nums[i], nums[l], nums[r]];
30                 }
31                 l++;
32             }
33         }
34     }
35 
36     return res;
37 };

 

3Sum

标签:

原文地址:http://www.cnblogs.com/huoteng/p/5025359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!