`
hcx2013
  • 浏览: 88832 次
社区版块
存档分类
最新评论

3Sum

 
阅读更多

Given an array S of n integers, are there elements abc in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.

Note:

  • Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)
  • The solution set must not contain duplicate triplets.

 

For example, given array S = {-1 0 1 2 -1 -4},

    A solution set is:
    (-1, 0, 1)
    (-1, -1, 2)

public class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
    	List<List<Integer>> list = new ArrayList<List<Integer>>();
    	Arrays.sort(nums);
    	Set<ArrayList<Integer>> set = new HashSet<ArrayList<Integer>>();
    	for (int i = 0; i < nums.length-2; i++) {
    		int a = nums[i];
    		int start = i+1;
    		int end = nums.length-1;
    		while (start < end) {
    			int b = nums[start];
    			int c = nums[end];
    			if (a+b+c == 0) {
    				ArrayList<Integer> t = new ArrayList<Integer>();
    				t.add(a);
    				t.add(b);
    				t.add(c);
    				set.add(t);
    				start++;
    				end--;
    			} else if (a+b+c < 0) {
    				start++;
    			} else {
    				end--;
    			}
    		}
    	}
    	list.addAll(set);
    	return list;
    }
}
 
2
6
分享到:
评论

相关推荐

    3sum-hard问题的综述

    3Sum-Hard问题是由经典的3Sum问题扩展而来的,3Sum问题要求在一个整数数组中找到三个元素,使得它们的和等于一个给定的目标值。而3Sum-Hard问题则是在3Sum的基础上增加了一些复杂性和难度。 3Sum问题的基本算法通常...

    python数组双指针算法求和问题LeetCode2sum3sum4sum含代码

    本文将深入探讨如何使用Python实现双指针算法来解决LeetCode中的2sum、3sum和4sum问题,并提供相关代码示例。 首先,我们来看2sum问题。给定一个整数数组`nums`和一个目标值`target`,我们需要找到数组中两个数的...

    文档python数组双指针算法求和问题LeetCode2sum3sum4sum含代码

    本文档主要介绍了在Python编程语言中如何运用双指针算法解决LeetCode上的2Sum、3Sum及4Sum求和问题,并提供了相应的代码实现。LeetCode是一个非常受欢迎的在线编程平台,用于练习算法题目,尤其适合准备技术面试的...

    3sum.asm

    3sum.asm

    java-leetcode题解之015-3Sum

    java入门 java_leetcode题解之015_3Sum

    leetcode java 题解之 3Sum With Multiplicity.java

    java基础 leetcode java 题解之 3Sum With Multiplicity.java

    js-leetcode题解之15-3sum.js

    js js_leetcode题解之15-3sum.js

    C语言-leetcode题解之15-3sum.c

    c语言入门 C语言_leetcode题解之15-3sum.c

    3-sum算法求解 python

    标题中的“3-sum算法求解 python”指的是在Python编程语言中实现一个经典的计算机科学问题——三数之和(3Sum)问题。这个问题来源于算法和数据结构领域,通常出现在面试和编程竞赛中。它的核心是找到一个整数数组中...

    js-leetcode题解之16-3sum-closest.js

    js js_leetcode题解之16-3sum-closest.js

    leetcode.3sum-leetcode-practice:算法实践

    3sum leetcode-练习 算法实践 15. 3和 给定一个由 n 个整数组成的数组 nums,nums 中是否有元素 a、b、c 使得 a + b + c = 0? 在数组中找到所有唯一的三元组,其总和为零。 示例输入: [-1, 0, 1, 2, -1, -4] 示例...

    3Sum solution

    3sum problem and solution.

    sm3sum

    linux sm3sum工具 光盘sm3sum 使 ./sm3sum-帮助

    js代码-15. 3Sum

    3Sum" 是一个关于JavaScript编程的议题,它主要涉及算法和数据结构中的三数之和问题。在计算机科学中,这个问题通常出现在算法设计和面试准备中,用于测试候选人的逻辑思维和编程能力。 【描述】描述中的 "js代码...

    js代码-16. 3Sum Closest

    3Sum Closest" 指的是一个关于JavaScript编程的题目,具体来说是解决算法问题“找到数组中三个元素的和最接近目标值的组合”。这个问题源自计算机科学中的经典算法题,常在面试或编程竞赛中出现。描述中的 "3Sum ...

    leetcode3sum-LeetCode:leetcode问题用C#解决

    3sum 力码 力扣算法 (注:“ :locked: " 表示你需要来自 Leetcode) # 标题 解决方案 困难 001 简单的 002 中等的 003 中等的 004 难的 005 中等的 006 简单的 007 简单的 008 简单的 009 简单的 010 难的 011 中等...

    leetcode.3sum-leetcode:创建此存储库是为了发布各种leetcode问题的解决方案

    3sum # Leetcode 解决方案以下是我在 Leetcode 上解决的一些问题,如果你喜欢/找到任何你的答案,请留下一个星。 如果你想与我联系,我在下面分享了我的 Linkedin URL。 问题 # 标题 # 解决方案 困难 1 二和 简单...

    md5sum-code_md5sum_md5sum工具_

    3. `Md5Sum.h`: 这是一个头文件,可能定义了`Md5Sum.cpp`中用到的类或函数接口。 4. `makefile`: 这是一个构建文件,用于指示编译器如何编译和链接这些源代码文件,生成可执行的`md5sum`工具。 在实际使用中,`md5...

Global site tag (gtag.js) - Google Analytics