4Sum
来源:互联网 发布:淘宝好的女装店铺推荐 编辑:程序博客网 时间:2024/05/10 11:23
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 static void main(String[] args) {int[] num = {-3,-2,-1,0,0,1,2,3};System.out.println(fourSum(num, 0));} public static ArrayList<ArrayList<Integer>> fourSum(int[] num, int target) { Set<ArrayList<Integer>> hset = new HashSet<ArrayList<Integer>>(); ArrayList<ArrayList<Integer>> listAll = new ArrayList<ArrayList<Integer>>(); if (num == null || num.length < 4) return listAll; Arrays.sort(num); for (int i = 0; i < num.length - 3; i++) { for (int j = i + 1; j < num.length - 2; j++) { int p = j + 1; int q = num.length - 1; while (p < q) { if (num[i] + num[j] + num[p] + num[q] == target) { ArrayList<Integer> list = new ArrayList<Integer>(); list.add(num[i]); list.add(num[j]); list.add(num[p]); list.add(num[q]); if (!hset.contains(list)) { hset.add(list); listAll.add(list); } p++; q--; } else if (num[i] + num[j] + num[p] + num[q] < target) { p++; } else { q--; } } } } return listAll; }}
- 【Leetcode】4Sum (Sum)
- leetcode 2 sum 3sum 4sum
- 3Sum 3Sum Closest 4Sum
- 3Sum & 3Sum Closest & 4Sum
- 2Sum 3Sum 4Sum
- 3sum、3Sum closet、 4sum
- 3Sum, 3Sum Closest, 4 Sum
- Leetcode 2SUM-3SUM-4SUM
- Leetcode-2sum,3sum,4sum
- leetcode 2 sum & 3 sum & 4 sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 4Sum
- 信号测试_信号处理函数嵌套
- 读 Hardware Monitor
- 误删VMware快照导致无法启动虚拟系统的问题
- [素材资源] 音频格式
- google chrome 快捷键
- 4Sum
- 关于 DialogFrament
- android layoutinflater
- testLib
- Android应用程序消息处理机制(Looper、Handler)分析
- 用完成端口开发大响应规模的Winsock应用程序
- this详解
- Nova-RPC rabbitmq
- 使用JConsole 监测自己的应用,尤其对多线程的情况很有用