Given an array S of n integers, are there elements a, b, c 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},
Sort the list first, which takes O(Nlog N). Then go through the sorted list, for each integer “nums[i]” in the list, narrow the range from the integers at index i and the end of the list. It takes O(n^2)