def twoNumberSumBest(array, targetSum):
	"""
		This function takes an array of numbers and check if there exists any two numbers sum up to a target number.
		This implementation has O(n) time complexity and O(n) space complexity.

		args
		---------
		array: an array of numbers
		targetSum: a target number

		output
		---------
		new_array: an array of two numbers which sum up to target number
		False: if there is no such two sumbers which sum up to target number in the input array

	"""
	new_arr = {}
	for num in array:
		targetNum = targetSum - num
		if(targetNum in new_arr):
			return [num, targetNum]
		else:
			new_arr[num] = True
	return False