第18题:4Sum
来源:互联网 发布:淘宝美式画 编辑:程序博客网 时间:2024/05/16 17:22
Given an array S of n integers, are there elementsa, b, c, and d in S such that a +b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.
Note: The solution set must not contain duplicate quadruplets.
For example, given array S = [1, 0, -1, 0, -2, 2], and target = 0.A solution set is:[ [-1, 0, 0, 1], [-2, -1, 1, 2], [-2, 0, 0, 2]]
题目要求:从已知数组中找出4数之和为目标值的四个数,输出所有结果。(数组中可能包含重复元素)
编程语言:javascript
/** * @param {number[]} nums * @param {number} target * @return {number[][]} */var fourSum = function(nums, target) { var length = nums.length; if(length<4) { return []; } if(length == 4) { if(nums[0]+nums[1]+nums[2]+nums[3] === target) { return [[nums[0],nums[1],nums[2],nums[3]]]; } } var resultArray = []; nums.sort(function(x,y) { return x-y; }); for(var i=0; i<length-3; ++i) { if(i>0 && nums[i] == nums[i-1]) { continue; } //求三数和 for(var j=i+1; j<length-2; ++j) { if(j>i+1 && nums[j] == nums[j-1]) { continue; } var left = j+1; var right = length-1; while(left<right) { var sum = nums[i] + nums[j] + nums[left] + nums[right]; if(sum > target) { --right; }else if(sum < target) { ++left; }else{ resultArray.push([nums[i],nums[j],nums[left],nums[right]]); while(left<right && nums[left] == nums[left+1]) { ++left; } while(left<right && nums[right] == nums[right-1]) { --right; } ++left; --right; } } } } return resultArray;};
0 0
- 第18题:4Sum
- leetcode 第18题 4Sum
- LeetCode第18题之4Sum
- leetcode 第18题 4Sum
- 第66题 4Sum
- leetcode第18题——**4Sum
- 【LeetCode】LeetCode——第18题:4Sum
- 第62题 Two Sum
- 第63题 3Sum
- 第15题:3Sum
- 欧拉项目第18题Maximum path sum I
- leetcode 第15-16题 3Sum & 3Sum Closest
- leetcode第1题-two Sum
- leetcode 第112题 Path Sum
- 第64题 3Sum Closest
- 【leetcode】第15题:3sum(medium)
- 【leetcode】第16题:3Sum Closest
- Leetcode 第 1 题(Two Sum)
- 策略模式
- android应用开发-从设计到实现 2-9 界面模式
- Opencv学习笔记一,各种结构说明
- Perl Unicode 全攻略:
- java web项目中实现打印功能(lodop)
- 第18题:4Sum
- 搜索技巧
- C#简单窗体应用程序(三)
- 无法获得VMCI 驱动程序的版本: 句柄无效。解决方法
- leetcode:28. Implement strStr()
- VC中在对话框上的static控件中绘图
- C++ private public等
- caffe-3.1--(本机PC上一个完整独立的测试程序)--MFC前台+调用Caffe后台
- C++ static