Skip to content

Instantly share code, notes, and snippets.

@jianminchen
Created July 18, 2020 04:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jianminchen/a75a8f2d02daab9fbc9905c07c5d7796 to your computer and use it in GitHub Desktop.
Save jianminchen/a75a8f2d02daab9fbc9905c07c5d7796 to your computer and use it in GitHub Desktop.
Four sum - C# code
public IList<IList<int>> FourSum(int[] nums, int target) {
if(nums == null || nums.Length < 4 )
return new List<IList<int>>();
var fourNumbers = new List<IList<int>>();
Array.Sort(nums);
var length = nums.Length;
for(int i = 0; i < length - 3; i++)
{
for(int j = 0; j < length - 2; j++)
{
var first = nums[i];
var second = nums[j];
var firstTwo = first + second;
var twoSumTarget = target - firstTwo;
var start = j + 1;
var end = length - 1;
while(start < end)
{
var startVal = nums[start];
var endVal = nums[end];
var twoSum = startVal + endVal;
if(twoSum == twoSumTarget)
{
var list = new List<int>(new int[]{first, second, startVal, endVal}.ToList());
fourNumbers.Add(list);
start++;
end--;
}
else if(twoSum < twoSumTarget)
{
start++;
}
else
{
end--;
}
}// end while loop '
} // end for loop j
} // end for loop i
return fourNumbers;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment