class Solution {
public List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> resultList = new ArrayList<>();
Arrays.sort(nums);
for (int first = 0; first < nums.length; first++) {
int second = first + 1;
int third = nums.length - 1;
while (second < third) {
int temp = nums[second] + nums[third];
if (temp < -nums[first]) {
second++;
} else if (temp > -nums[first]) {
third--;
} else {
int finalFirst = first;
int finalSecond = second;
int finalThird = third;
resultList.add(new ArrayList<Integer>() {
private static final long serialVersionUID = 6096004525464010681L;
{
add(nums[finalFirst]);
add(nums[finalSecond]);
add(nums[finalThird]);
}
});
while (second < third && nums[second] == nums[second + 1]) {
second++;
}
second++;
while (second < third && nums[third] == nums[third - 1]) {
third--;
}
third--;
}
}
while (first < nums.length - 1 && nums[first] == nums[first + 1]) {
first++;
}
}
return resultList;
}
}
15. 三数之和
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.两数之和 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样...