leetcode-18 4Sum
来源:互联网 发布:淘宝网注册 编辑:程序博客网 时间:2024/04/20 01:12
暴力大法好。
import java.util.* ;public class Solution{ public List<List<Integer>> fourSum(int[] nums, int target){ Arrays.sort(nums) ; HashMap<Integer, List<Node>> map = new HashMap<Integer, List<Node>>() ; int n = nums.length ; for(int i = 0 ; i < n ; i++){ for(int j = i + 1 ; j < n ; j++){ int sum = nums[i] + nums[j] ; List<Node> g = map.containsKey(sum) ? map.get(sum) : new ArrayList<Node>() ; Node node = new Node(nums[i], i , nums[j] , j) ; g.add(node) ; if(! map.containsKey(sum)) map.put(sum, g) ; } } List<Integer> twosum = new ArrayList<Integer>() ; for(int e : map.keySet()) twosum.add(e) ; Collections.sort(twosum) ; Set<List<Integer>> st = new HashSet<List<Integer>>() ; for(int suma : twosum){ int sumb = target - suma ; if(map.containsKey(sumb)){ for(Node A : map.get(suma)){ for(Node B : map.get(sumb)){ if(A.bid < B.aid){ List<Integer> now = new ArrayList<Integer>() ; now.add(A.a) ; now.add(A.b) ; now.add(B.a) ; now.add(B.b) ; st.add(now) ; } } } } } List<List<Integer>> result = new ArrayList<List<Integer>>() ; for(Iterator<List<Integer>> it = st.iterator() ; it.hasNext() ; ){ result.add(it.next()) ; } return result ; } public static void main(String[] args){ System.out.println(new Solution().fourSum(new int[]{1,0,-1,0,-2,2}, 0)); } }class Node{ public int a , aid , b , bid ; public Node(int a , int aid , int b , int bid){ this.a = a ; this.aid = aid ; this.b = b ; this.bid = bid ; } public boolean equals(Node other) { return a == other.a && b == other.b ; } }
0 0
- LeetCode 18: 4Sum
- [leetcode 18] 4Sum
- [leetcode] 18 4Sum
- leetcode.18--------------4Sum
- leetcode 18 4Sum
- LeetCode---(18) 4 Sum
- LeetCode 18 - 4Sum
- LeetCode 18: 4Sum
- leetcode 18 -- 4Sum
- Leetcode[18]-4Sum
- leetcode-18 4Sum
- leetcode 18: 4Sum
- Leetcode#18 4Sum
- LeetCode(18) 4Sum
- LeetCode #18 4Sum
- Leetcode 18 4Sum
- LeetCode-18 4Sum
- Leetcode#18||4 Sum
- Python JSON模块
- 使用PHP QR Code生成二维码
- ubuntu下MySQL的安装及远程连接配置
- SQlite入门理解
- Extjs4 动态加载(Ext.Loader)
- leetcode-18 4Sum
- Xcode提示“expression is not assignable”
- 查找算法总结之二(动态查找表)
- 转: ERROR: modinfo: could not find module *
- C语言----内存区划分
- 提出一点考生的心态问题并予以指点
- [转载] goroutine背后的系统知识
- sql遍历所有数据集
- Java Reflection(十一):动态代理