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

4Sum

时间:2015-12-24 20:53:35      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

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

 

4Sum

标签:

原文地址:http://www.cnblogs.com/HuoAA/p/5074226.html

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