4Sum
来源:互联网 发布:掌炙世家淘宝网有买吗 编辑:程序博客网 时间:2024/04/30 11:40
题目描述:
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)
思路和前面的2sum,3sum差不多,先排序,关键就是最后的要把相同的全部都去掉。
这里的indexOf源码:
<pre name="code" class="java">public int indexOf(Object o) { if (o == null) { for (int i = 0; i < size; i++) if (elementData[i]==null) return i; } else { for (int i = 0; i < size; i++) if (o.equals(elementData[i])) return i; } return -1;}
equals源码:
public boolean equals(Object o) { if (o == this) return true; if (!(o instanceof List)) return false; ListIterator<E> e1 = listIterator(); ListIterator<?> e2 = ((List<?>) o).listIterator(); while (e1.hasNext() && e2.hasNext()) { E o1 = e1.next(); Object o2 = e2.next(); if (!(o1==null ? o2==null : o1.equals(o2))) return false; } return !(e1.hasNext() || e2.hasNext());}所以当list中查找是按照equals方法来查找的,而equals又支持List,只要每个元素相等就返回true。所以可以这样去除List<List<Integer>>中重复的list
代码如下:
0 0
- 【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
- 【软考】这一个五月,你陪我一起走过
- MATLAB与VC混编中的DLL加载问题
- 尝试解决JPA懒加载异常问题(wildfly)
- Spark中组件Mllib的学习29之支持向量机SVM-方法2
- MPLS/VPN 基本原理及在ZXR10中的配置
- 4Sum
- 飛飛(四十六)交通工具
- LinkedList集合源码解析
- eclipse使用maven搭建spring mvc
- native binder相关类
- JDBC初识
- 数组中只出现一次的数字
- leetcode---Roman to Integer
- HDU 4857 逃生 (反向拓扑排序+优先队列)