Leetcode no. 18
来源:互联网 发布:mysql开启binlog日志 编辑:程序博客网 时间:2024/06/01 07:14
18. 4Sum
Given an array S of n integers, are there elements a, 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:
- Elements in a quadruplet (a,b,c,d) must be in non-descending order. (ie, a ≤ b ≤ c ≤ d)
- 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)
public class Solution { public List<List<Integer>> fourSum(int[] nums, int target) { List<List<Integer>> list= new LinkedList<>(); if (nums.length<4) return list; Arrays.sort(nums); for (int i = 0; i < nums.length-3; i++) { if (i>0 && nums[i]== nums[i-1]) continue; for (int j = i+1; j < nums.length-2; j++) { if (j>i+1 && nums[j]== nums[j-1]) continue; int subtarget= target-nums[i]-nums[j]; int m= j+1, n= nums.length-1; while (m<n){ if (nums[m]+nums[n]==subtarget) { list.add(Arrays.asList(nums[i], nums[j], nums[m], nums[n])); while (m < n && nums[m] == nums[m + 1]) m++; while (m < n && nums[n] == nums[n - 1]) n--; m++; n--; } else if (nums[m]+nums[n]<subtarget) m++; else n--; } } } return list; }}
0 0
- Leetcode no. 18
- Leetcode NO.18 4Sum
- LeetCode No.18 4Sum
- LeetCode No.11 ~No.12
- Leetcode NO.78 Subsets
- Leetcode NO.77 Combinations
- Leetcode NO.46 Permutations
- 【leetcode】No. 235 LCABST
- LeetCode no. 35
- Leetcode no. 37
- Leetcode no. 279
- Leetcode no. 335
- Leetcode no. 283
- Leetcode no. 181 (sql)
- Leetcode no. 40
- Leetcode no. 238
- Leetcode no. 26
- Leetcode no. 80
- 设计模式笔记——MVC模式
- tinyos学习笔记13--PppRouter组件关系图
- zabbix-rpm包安装
- cocos2dx scene的理解
- tomcat 内存溢出
- Leetcode no. 18
- 400行代码实现行为树(基于cocos2dx框架下)
- iOS设置Label上显示不同字体大小
- 关于webview的常识
- 交流经过整流桥后的电压计算方法(不权威)
- HTML+CSS基础课程/1-4单学习记录
- ZOJ Problem Set - 3944(interesting people counting))
- nodejs教程 安装express及配置app.js文件的详细步骤
- ClassNotFoundException与NoClassDefFoundError 区别